@throw NSException vs NSException raise

时间:2014-02-14 09:27:30

标签: ios objective-c exception throw raise

@throw NSExceptionNSException raise之间有什么区别?我想知道我应该使用哪一个(有一个正确的用例来使用)以及为什么?

1 个答案:

答案 0 :(得分:7)

来自Apple文档,

  

@throwraise之间的一个重要区别是后者只能发送到NSException object,而@throw可以将其他类型的对象作为其参数(例如作为字符串对象)。 Cocoa应用程序应仅@throw NSException objects

     

通常,您在异常处理域内抛出或引发异常,该域是由@try编译器指令标记的代码块。

     

有关详细信息,请参阅“Handling Exceptions”。

     

在异常处理域中,您可以通过向NSException对象发送另一个引发消息或将其与另一个@throw指令一起使用,将本地异常处理程序捕获的异常重新传播到更高级别的处理程序。

有关详细信息,请参阅documentation