@throw NSException vs NSException raise

Kli*_*akM 7 exception objective-c raise throw ios

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

Che*_*ile 7

来自Apple文档,

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

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

有关详细信息,请参阅" 处理异常 ".

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

有关详细信息,请参阅文档.