2

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

4

2 回答 2

4

iOS 和 Cocoa 中的框架抛出的异常表示不可恢复的错误。不使用异常(非常极端的异常除外)来传达诸如验证问题之类的东西。

通常,iOS 和 Cocoa 用于NSError传达可恢复的问题(例如,用户输入验证错误、Core Data 中的状态验证错误或连接问题)。

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

于 2010-10-11T06:40:21.423 回答
0

您想在代码中抛出 NSExceptions,并且想知道框架是否也抛出它们。好吧,如果发生错误,它会抛出它们。您可以通过将每个抛出异常的代码放在 try...catch... finally 块中来捕获它们,这与“您的”异常抛出代码的块不同:) 也许其他人可以提供更多信息并希望我做对了你想做的事。

于 2010-10-11T06:21:48.933 回答