gpt4 book ai didi

objective-c - 在 objective-c 中返回错误

转载 作者:太空狗 更新时间:2023-10-30 03:25:55 26 4
gpt4 key购买 nike

我是 objective-c 的新手,我开始想知道处理和捕获错误的通用/标准/正确方法是什么?

似乎可以使用 NSError 来做到这一点,这是一个好主意还是对 cocoa 的劫持?

最佳答案

我很确定这就是 NSError 类的作用 - 提供有关错误的详细信息。您将看到的最常见的模式是采用指向 NSError 对象的指针的方法,如:

- (id)doSomethingWithArgument:(id)arg error:(NSError **)error

该方法返回一些值(或可能是 nil)作为执行某事的结果,但如果调用失败,将在传递的指针处放置一个 NSError 对象,其中包含有关失败的详细信息。您的文档负责指定在方法确实遇到错误时返回的内容。

另一个想到的方法是@throw-@catch block ;然而,在 Objective-C 中,@throw异常在计算上可能相当昂贵,通常只建议在真正异常的情况下这样做。

编辑:哇,事实证明很多人对@throw异常有非常强烈的看法。总结关于这个问题的(非常有帮助的)评论:

  • 抛出异常应该最常处理程序员错误(不应该永远发生的情况,等等);异常不应该用于普通的错误处理。相反,使用上面演示的 error 方法或发布 NSNotification 实例。
  • 如果您确实要大量使用@throw/@catch block ,请非常注意它们周围的逻辑。 Objective-C 提供了很多方法来分离方法以在其他线程中运行,或延迟执行等。在编写代码时要非常小心地考虑所有这些可能性。

最后,还有一个非常有道理的观点:

  • 如果您确实使用了传递给方法的error 对象,则返回值应该指出这一点。不要尝试两者都做(返回一个部分有效的对象设置error对象)。

关于objective-c - 在 objective-c 中返回错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1503348/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com