如何处理 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?

如何处理 iPhone 5 视网膜显示检查?

如何处理多个引脚将在 iphone sdk 中的一个经度和纬度上掉线?

iPhone - 如何处理内存不足的情况