我知道我可以在自己的代码中抛出一个NSException,iphone os框架会抛出NSException本身吗? 如果是的话,意味着我应该从框架中捕获NSExceptions? 我知道Java会抛出Exceptions内部SDK,例如未经检查的异常。
答案 0 :(得分:4)
iOS和Cocoa框架引发的异常表示存在不可恢复的错误。不使用例外(在非常极端的例外之外)来传达诸如验证问题之类的东西。
通常,iOS和Cocoa使用NSError
来传达可恢复的问题(例如用户条目验证错误,核心数据中的状态验证错误或连接问题)。
除了指出不可恢复的问题之外,您不应该在自己的代码中使用异常。它违背了底层框架的模式,这样做会使您的代码更难以随着时间的推移而发展。
答案 1 :(得分:0)
您希望在代码中抛出NSExceptions,并且您想知道框架是否也抛出它们。好吧,如果发生错误,它会抛出它们。您可以通过将每个异常抛出的代码放入try ... catch ... finally块中来捕获它们,这与“您的”异常抛出代码的那个不同:)也许其他人可以提供更多信息并希望我把你正在做的事做对了。