iphone操作系统框架本身是否抛出了NSException?

iphone操作系统框架本身是否抛出了NSException?,iphone,nsexception,Iphone,Nsexception,我知道我可以在自己的代码中抛出一个NSException,iphone os框架本身会抛出NSException吗? 如果是,意味着我应该从框架中捕获NSExceptions? 我知道Java会在SDK内部抛出异常,例如未经检查的异常。您想在代码中抛出NSException,您想知道框架是否也会抛出它们。如果发生错误,它会抛出它们。您可以通过将每个异常抛出的代码片段放在一次尝试中来捕获它们。。。抓住。。。与“您的”异常抛出代码不同的最后一个块:)也许其他人可以提供更多信息,并希望我能正确理解您的

我知道我可以在自己的代码中抛出一个NSException,iphone os框架本身会抛出NSException吗? 如果是,意味着我应该从框架中捕获NSExceptions?
我知道Java会在SDK内部抛出异常,例如未经检查的异常。

您想在代码中抛出NSException,您想知道框架是否也会抛出它们。如果发生错误,它会抛出它们。您可以通过将每个异常抛出的代码片段放在一次尝试中来捕获它们。。。抓住。。。与“您的”异常抛出代码不同的最后一个块:)也许其他人可以提供更多信息,并希望我能正确理解您的意图。

iOS和Cocoa中框架抛出的异常表示无法恢复的错误。异常不用于(在非常极端的异常之外)传递类似于验证问题的信息

通常,iOS和Cocoa使用
NSError
来传达可恢复的问题(例如,用户输入验证错误、核心数据中的状态验证错误或连接问题)


除了指出不可恢复的问题外,您不应该在自己的代码中使用异常。它与底层框架的模式背道而驰,这样做会使您的代码随着时间的推移更加难以发展。

苹果的错误处理编程指南是Cocoa中错误处理的一个很好的概述,其中包括一个名为“错误和异常注释”(a Note on Errors and Exception)的部分,基本上重申了@bbum上面所说的内容。(以防您想从“更官方”的来源获得它。)