@throw NSException
和NSException raise
之间有什么区别?我想知道我应该使用哪一个(有一个正确的用例来使用)以及为什么?
答案 0 :(得分:7)
来自Apple文档,
@throw
和raise
之间的一个重要区别是后者只能发送到NSException object
,而@throw
可以将其他类型的对象作为其参数(例如作为字符串对象)。 Cocoa应用程序应仅@throwNSException objects
。通常,您在异常处理域内抛出或引发异常,该域是由@try编译器指令标记的代码块。
有关详细信息,请参阅“Handling Exceptions”。
在异常处理域中,您可以通过向NSException对象发送另一个引发消息或将其与另一个@throw指令一起使用,将本地异常处理程序捕获的异常重新传播到更高级别的处理程序。
有关详细信息,请参阅documentation。