我是Objective-C世界的新手。在研究一些iOS / Mac应用程序时我注意到的是,如果使用try -catch很少使用。 例如,在Java中几乎一直使用它。 为什么在Objective-C中不常见?
答案 0 :(得分:5)
Objective-C中的异常通常用于真正特殊情况,几乎总是程序员错误。要传达可恢复的错误,请使用NSError **模式。
答案 1 :(得分:2)
有很多SDK方法采用NSError**
参数并返回BOOL
。要指示错误,它们将返回false并通过error参数返回错误以传达信息。
使用 ,但通常用于运行时级别出现故障的情况 - 例如某些对象无法处理选择器。虽然它可能看起来与我刚写的相反,但异常往往表明设计中存在错误而不是运行时错误。
NSError**
成语是您需要的,例如URL连接失败,数据转换等,其中存在错误条件,但程序确实不应该被彻底杀死。