Tob*_*ias 79 cocoa conventions objective-c
在Cocoa中,何时应该使用NSAssert,NSException,NSError?
这就是我一直在想的:
NSAssert - 在创建任何用于程序员自身利益的客户端程序时,可以仔细检查规则,约定,假设或前置条件和后置条件?
NSException - 为了使用该库的其他程序员的利益创建第三方库,以便他们立即知道输入何时无效?
NSError - 当与外部系统连接以获取不保证给我结果的文件,数据库或Web服务等数据时?
Mik*_*ler 100
一个NSAssert失败时会抛出异常.因此,NSAssert是一种简单易用的编写方式,可以检查您在代码中所做的任何假设.它(在我看来)不是例外的替代品,只是一种捷径.如果断言失败,那么代码中的某些内容就会出现严重错误,程序不应该继续.
需要注意的一点是,NSAssert不会在发布版本中编译到您的代码中,因此这通常用于开发期间的健全性检查.我实际上倾向于使用始终处于活动状态的自定义断言宏.
你的时间@throw你自己NSException是当你肯定希望它在发布版本,并在东西像公共图书馆/接口时,一些参数是无效的,或者你已经被称为不正确.请注意,@catch异常并不是标准做法,并继续运行您的应用程序.如果您尝试使用Apple的一些标准库(例如Core Data),可能会发生不好的事情.类似于断言,如果抛出异常,应用程序通常应该很快终止,因为这意味着某处存在编程错误.
NSErrors应该在您的库/接口中用于非编程错误的错误,并且可以从中恢复.您可以向调用者提供信息/错误代码,他们可以干净地处理错误,在适当时提醒用户,并继续执行.这通常是针对File-not-found错误或其他一些非致命错误.
| 归档时间: |
|
| 查看次数: |
19726 次 |
| 最近记录: |