Ios 为什么objective-c例外不友好?

Ios 为什么objective-c例外不友好?,ios,objective-c,exception,exception-handling,Ios,Objective C,Exception,Exception Handling,我以前在.NETC工作,最近开始学习objective-c和iOS编程。好几次我读到objective-c非常不友好,我不应该处理它们。我知道最好不要引起任何异常,但它们不是为了保护我们的代码而创建的吗?异常处理在.NET中非常常见,我不明白为什么我不应该在objective-c中这样做。即使在.NET中,异常也不适用于程序流。事实上,一些程序员使用它们本身就是糟糕的编程。表演糟透了。通常,您会看到显示异常处理错误消息的程序,这些错误消息对最终用户来说毫无意义。这种设计使应用程序不会崩溃,但不会

我以前在.NETC工作,最近开始学习objective-c和iOS编程。好几次我读到objective-c非常不友好,我不应该处理它们。我知道最好不要引起任何异常,但它们不是为了保护我们的代码而创建的吗?异常处理在.NET中非常常见,我不明白为什么我不应该在objective-c中这样做。

即使在.NET中,异常也不适用于程序流。事实上,一些程序员使用它们本身就是糟糕的编程。表演糟透了。通常,您会看到显示异常处理错误消息的程序,这些错误消息对最终用户来说毫无意义。这种设计使应用程序不会崩溃,但不会向最终用户提供太多信息

您可以像在.NET中一样使用异常作为程序流。没有什么能阻止你。对性能的影响实际上可能比在.NET中要小


您不应该这样做的原因是,这些异常的发生是有原因的。您没有正确地使用这些框架。您尚未完全实现某些功能。等等。

在“Objective-c中异常/返回NO/nil的最佳实践是什么?”中,没有人解释我为什么不应该使用它们。“为什么我不应该用“try”来包装每个块?”“catch”仍然不能解释为什么objective-c中的异常处理不如.NET(显然不能过度使用它)。它与ObjC关系不大,而与Cocoa有关。在内部,Cocoa不会将所有内容都封装在@try/@catch/@finally中,因此,如果Cocoa调用您的代码,即使您稍后捕获了异常,它也不准备让您的代码抛出异常。