gpt4 book ai didi

objective-c - NSException 和 NSError 自定义异常/错误

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

我最近开始学习 Objective-C,我正在做一个 iOS 应用程序作为练习,无论如何,我想通过抛出异常来处理溢出(我来自 Java 背景),我搜索了引用资料只有 NSException,但后来我读到有关异常处理的主题部分,他们说要使用 NSError,我阅读了引用资料,但他们有相同的协议(protocol)和方法,所以他们之间有什么区别?哪个更好?

此外,我想创建自己的异常或错误类,是否有任何我应该包含的方法或字段? (就像在 Java 中实现 Exception 接口(interface)一样)。谢谢

最佳答案

NSError 是为非致命的、可恢复的错误而设计的。设计为由 NSError 捕获的问题通常是用户错误(或者是可以呈现给用户的错误),通常可以从中恢复(因此为 -presentError:NSErrorRecoveryAttempting ),并且通常是预期或可预测的错误(例如尝试打开您无权访问的文件,或尝试在不兼容的字符串编码之间进行转换)。

NSException 是为潜在的致命程序员错误而设计的。这些错误旨在表示您的应用程序中存在潜在缺陷,您没有正确检查执行某些操作的先决条件(例如尝试访问超出其范围的数组索引,或尝试改变不可变对象(immutable对象))。 Exception Programming Guide 的介绍稍微解释了这一点。

关于objective-c - NSException 和 NSError 自定义异常/错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11100951/

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