【问题标题】:Why are objective-c exceptions unfriendly? [duplicate]为什么objective-c异常不友好? [复制]
【发布时间】:2013-12-20 06:18:04
【问题描述】:

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

【问题讨论】:

  • 在“Objective-c 中异常/返回 NO/nil 的最佳实践是什么?”没有人解释为什么我不应该使用它们。并且“为什么我不应该将每个块都包装在“try”-“catch”中”仍然不能解释为什么 Objective-c 中的异常处理不像 .NET 那样被推荐(因为很明显不要过度使用它)。
  • 跟ObjC没什么关系,跟Cocoa有关。在内部,Cocoa 不会将所有内容都包装在 @try/@catch/@finally 中,因此如果 Cocoa 调用您的代码,即使您稍后捕获它,它也不会为您的代码抛出异常做好准备。

标签: ios objective-c exception exception-handling


【解决方案1】:

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

您可以像在 .NET 中一样使用异常作为程序流。没有什么能阻止你。性能损失实际上可能低于 .NET。

您不应该这样做的原因是这些异常的发生是有原因的。您没有正确使用框架。你还没有完全实现一些东西。等等。

【讨论】:

    猜你喜欢
    • 2023-04-01
    • 1970-01-01
    • 2019-07-19
    • 2014-11-18
    • 1970-01-01
    • 2011-03-14
    • 1970-01-01
    • 2016-12-29
    相关资源
    最近更新 更多