【问题标题】:How to deal with NSError in an iphone application? [duplicate]如何处理 iPhone 应用程序中的 NSError? [复制]
【发布时间】:2013-03-22 19:05:40
【问题描述】:

ios开发中NSError的处理有什么好的方法吗?看了一些网上的参考资料,发现大部分都是用[NSApp presentError]来呈现错误的??

这在 ios 中绝对是不可能的,因为在 ios 领域没有任何称为 NSApp 的东西..

我想知道除了打印什么之外应该如何处理 NSErrors

错误确实是使用[error localizedDescription]

应该访问 NSError 类的错误代码属性并处理所有可能的

使用 else if/ladder 在特定情况下可能会出现的错误代码??

**如果能解释一下 NSError 和

之间的主要区别也会很有帮助

NS异常?以及为什么我们首先有两个单独的东西**

【问题讨论】:

    标签: iphone ios objective-c nserror nsexception


    【解决方案1】:

    NSError 是一个返回码,您尝试在其中执行某项操作,但您尝试的操作无效。例如,您试图打开一个文件,但它不存在。 NSError 表示错误情况,在不同的情况下使用相同的调用,您可能不会收到错误(文件在那里)。一个 NSException 表示一些致命的坏事。您尝试写入 null,您尝试写入字符串或数组的末尾。 NSExceptions 应该由程序员清理,NSErrors 可能只是偶然错误。
    你用 NSError 做什么取决于上下文。有时您想通过警报通知用户,有时您想忽略它(例如在编写新资源之前测试不存在的资源)。可能至少,您希望 NSLog 您的 NSErrors(假设您使用宏从最终代码中删除 NSLogs)。

    【讨论】:

      【解决方案2】:

      无论你对 NSErrors 做什么取决于你的特定应用程序,只要使用常识即可。

      与 Java 等其他语言不同,Objective-C 中的异常是资源密集型的。因此,

      • 使用异常来指示不可恢复的程序错误。捕捉到这种异常的程序应该很快就会退出。框架并非旨在让您从异常中恢复。

      • 不要使用异常来指示用户错误、可恢复错误或一般流控制。这些情况应该用 NSError 来处理。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-06-06
        • 2012-09-05
        • 2011-01-01
        • 2011-03-23
        • 1970-01-01
        相关资源
        最近更新 更多