当所需的输入参数为零时,在objective-c方法中抛出异常?

问题描述:

注意到一般性指导重新使用Objective-C的异常(如throwing an exception in objective-c/cocoa)的我还没有这种情况相当肯定:当所需的输入参数为零时,在objective-c方法中抛出异常?

在Objective-C的方法抛出异常时所需的输入参数是零最佳实践/好吗?

如果没有,什么样的方法是典型的那么这里的Objective-C?

这将是一个有效的异常,甚至断言(这反过来会抛出异常)。有已定义的宏将会做你想做的。

+0

约书亚 - 会不会有产量但与断言例外吗? (只是注意到@saury被建议NSAsserts不会被编译到发布版本中) – Greg

+0

是的,NSAsserts仍然存在于发布代码中。他们没有编译出来。 –

NSAssert更适合开发者自己的方便。开发人员使用它来检查假设/条件等。 需要注意的一件事是,在发布版本中,NSAssert不会被编译到您的代码中。

你做的时候,你要处理的情况下,在运行时无效输入你的代码@throw NSException您的具体情况,因为他们只针对这些情况的意思。

NSErrors也是由苹果公司提供的其他工厂。它一般用于未编程错误不必要的条件(比如蓝牙硬件缺陷和你蓝牙相关的应用是依赖于)

+0

您应该对非法用户输入使用异常。例外是你的代码中存在错误。意图不是你捕捉到一个异常,而是你在你的代码中发现错误并修复它。像“是必需的参数,但无”的 - 这是在调用的代码中的错误,所以正确的做法是抛出一个异常,如果它发生,解决方法的调用者。 NSError是针对应用程序控制之外的错误(用户输入错误,服务器问题等) – gnasher729