阅读文档并查看苹果示例代码(以及大部分第三方Objective-C代码),我得出的印象是,不应该使用try/catch和“传统/C”方法来处理异常。
最近我在阅读亚马逊AWS iOS SDK时发现,他们频繁地使用了旧方法。
这让我感到宽慰,因为我一直觉得当我使用其他人编写的代码或二进制库(例如Google Analytics二进制文件)时,我需要确保自己捕获异常。
我的问题是,是否有任何理由避免在iOS上进行“传统”的异常处理,或者仅仅是因为这不是一种优雅的Objective-C实践?
最近我在阅读亚马逊AWS iOS SDK时发现,他们频繁地使用了旧方法。
这让我感到宽慰,因为我一直觉得当我使用其他人编写的代码或二进制库(例如Google Analytics二进制文件)时,我需要确保自己捕获异常。
我的问题是,是否有任何理由避免在iOS上进行“传统”的异常处理,或者仅仅是因为这不是一种优雅的Objective-C实践?
NULL
或 -1 来表示错误,并设置全局errno
。另一种常用技术是直接返回错误代码,其中一个可能的错误是 SUCCESS、NO_ERROR 或类似的内容。C 没有直接支持异常处理的语言支持。setjmp
和longjmp
提供了实现它们的工具,但这不像在 C++ 中那样是一种语言特性。 - Rob Napier