iphone os 框架本身会抛出 NSException 吗?
Posted
技术标签:
【中文标题】iphone os 框架本身会抛出 NSException 吗?【英文标题】:does iphone os framework throw NSException itself? 【发布时间】:2010-10-11 06:10:16 【问题描述】:我知道我可以在自己的代码中抛出 NSException,iphone os 框架会抛出 NSException 本身吗? 如果是这样,意味着我应该从框架中捕获 NSExceptions 吗? 我知道Java会在SDK内部抛出异常,例如未经检查的异常。
【问题讨论】:
【参考方案1】:ios 和 Cocoa 中的框架抛出的异常表示不可恢复的错误。不使用异常(非常极端的异常除外)来传达类似验证问题的内容。
一般来说,iOS 和 Cocoa 使用NSError
来传达可恢复的问题(例如,用户输入验证错误、Core Data 中的状态验证错误或连接问题)。
您不应在自己的代码中使用异常来指示无法恢复的问题。它与底层框架的模式背道而驰,这样做会使您的代码随着时间的推移更难以发展。
【讨论】:
Apple 的错误处理编程指南对 Cocoa 中的错误处理进行了很好的概述,其中包括一个名为“错误和异常注意事项”(developer.apple.com/library/ios/documentation/Cocoa/Conceptual/…) 的部分,它基本上重申了上述 @bbum 所说的内容。 (如果您想从“更官方”的来源获得它。)【参考方案2】:您想在代码中抛出 NSExceptions,并且想知道框架是否也抛出它们。好吧,如果发生错误,它会抛出它们。您可以通过将每个抛出异常的代码放在 try...catch... finally 块中来捕获它们,这与“您的”异常抛出代码的块不同:) 也许其他人可以提供更多信息并希望我做对了你想做的事。
【讨论】:
以上是关于iphone os 框架本身会抛出 NSException 吗?的主要内容,如果未能解决你的问题,请参考以下文章
组织者报告,“iPhone OS 的版本与支持开发的 iPhone OS 不匹配”