【发布时间】:2011-12-10 14:47:10
【问题描述】:
注意到在 Objective-c 中重复使用异常的一般指导(例如throwing an exception in objective-c/cocoa)我仍然不太确定这种情况:
当所需的输入参数为零时,是否在 Objective-C 方法中抛出异常最佳实践/好的?
如果不是,那么在 Objective-c 中,典型的方法是什么?
【问题讨论】:
标签: iphone objective-c ios nsexception
注意到在 Objective-c 中重复使用异常的一般指导(例如throwing an exception in objective-c/cocoa)我仍然不太确定这种情况:
当所需的输入参数为零时,是否在 Objective-C 方法中抛出异常最佳实践/好的?
如果不是,那么在 Objective-c 中,典型的方法是什么?
【问题讨论】:
标签: iphone objective-c ios nsexception
这将是一个有效的异常,甚至是一个断言(这反过来又会抛出一个异常)。已经定义了 NSParameterAssert 宏,可以满足您的需求。
【讨论】:
NSAssert 更多是为了方便开发人员。开发人员使用它来检查假设/条件等。 需要注意的一点是,NSAssert 不会在发布版本中编译到您的代码中。
您针对您的情况执行@throw NSException,因为它们仅适用于您希望在运行时处理代码无效输入的情况。
NSErrors 也是 Apple 提供的另一个工具。它通常用于不是编程错误的不需要的条件(比如蓝牙硬件有缺陷,你的蓝牙相关应用程序依赖于此)
【讨论】: