gpt4 book ai didi

iphone - iPhone/Objective-C的try-catch异常处理实践

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

很抱歉,如果这个问题已经在其他地方得到了回答,但我在搜索时找不到任何决定性的答案:

我想知道什么时候在 Objective-C iPhone 应用程序中使用 try-catch block 。 Apple 的“Objective-C 编程语言简介”指出异常是资源密集型的,并且“不应将异常用于一般流程控制,或仅用于表示错误”。通过阅读此处的一些相关问题,我还了解到人们在实践中并不经常使用这种方法。

所以我想问题是:在为 iPhone/Objective-C 开发时什么情况下适合使用 try-catch block ,什么时候绝对不应该使用它们?

例如,在处理数组中的对象时,我可以使用它们来捕获越界和其他异常。我有一个方法可以执行一些任务,这些任务与在多个数组中传递的对象有关。如果发生错误,该方法将返回 nil,并且 try-catch block 可以帮助我捕获异常。但是,我当然可以简单地在这里和那里编写一些小的 if 测试,以确保我永远不会尝试访问数组边界之外的索引。在这种情况下你会怎么做?

非常感谢!

最佳答案

只有在处理不可恢复的错误时才适合使用@try/@catch。使用@throw/@try/@catch 来执行类似控制流的操作是不合适的。

特别是,它不适合用于捕获越界异常,除非您的目标是捕获它们并以某种方式报告错误,然后——通常是——崩溃,或者至少警告用户您的应用处于不一致状态并且可能会丢失数据。

通过系统框架代码抛出的任何异常的行为是未定义的。

用于边界检查的 if 测试是更合适的解决方案。

关于iphone - iPhone/Objective-C的try-catch异常处理实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3678438/

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