如何处理 iPhone 应用程序中的 NSError? [复制]
Posted
技术标签:
【中文标题】如何处理 iPhone 应用程序中的 NSError? [复制]【英文标题】:How to deal with NSError in an iphone application? [duplicate] 【发布时间】:2013-03-22 19:05:40 【问题描述】:ios开发中NSError的处理有什么好的方法吗?看了一些网上的参考资料,发现大部分都是用[NSApp presentError]
来呈现错误的??
这在 ios 中绝对是不可能的,因为在 ios 领域没有任何称为 NSApp 的东西..
我想知道除了打印什么之外应该如何处理 NSErrors
错误确实是使用[error localizedDescription]
应该访问 NSError 类的错误代码属性并处理所有可能的
使用 else if/ladder 在特定情况下可能会出现的错误代码??
**如果能解释一下 NSError 和
之间的主要区别也会很有帮助NS异常?以及为什么我们首先有两个单独的东西**
【问题讨论】:
【参考方案1】:NSError 是一个返回码,您尝试在其中执行某项操作,但您尝试的操作无效。例如,您试图打开一个文件,但它不存在。 NSError 表示错误情况,在不同的情况下使用相同的调用,您可能不会收到错误(文件在那里)。一个 NSException 表示一些致命的坏事。您尝试写入 null,您尝试写入字符串或数组的末尾。 NSExceptions 应该由程序员清理,NSErrors 可能只是偶然错误。 你用 NSError 做什么取决于上下文。有时您想通过警报通知用户,有时您想忽略它(例如在编写新资源之前测试不存在的资源)。可能至少,您希望 NSLog 您的 NSErrors(假设您使用宏从最终代码中删除 NSLogs)。
【讨论】:
【参考方案2】:无论你对 NSErrors 做什么取决于你的特定应用程序,只要使用常识即可。
与 Java 等其他语言不同,Objective-C 中的异常是资源密集型的。因此,
使用异常来指示不可恢复的程序错误。捕捉到这种异常的程序应该很快就会退出。框架并非旨在让您从异常中恢复。
不要使用异常来指示用户错误、可恢复错误或一般流控制。这些情况应该用 NSError 来处理。
【讨论】:
以上是关于如何处理 iPhone 应用程序中的 NSError? [复制]的主要内容,如果未能解决你的问题,请参考以下文章
如何处理 iPhone 应用程序中的 try catch? [复制]
如何处理 iPhone 应用程序中的 NSError? [复制]
你如何处理 UI 自动化 iPhone 应用程序测试中的 UIPickerView?