从苹果文档中可以了解到,@throw 和 raise 的一个重要区别在于后者只能发送给 NSException 对象,而 @throw 可以将其他类型的对象作为其参数(例如字符串对象)。Cocoa 应用程序应该只 @throw NSException 对象。通常情况下,在异常处理域中抛出或引发异常,这是由 @try 编译器指令标记的一段代码块。有关详细信息,请参见“处理异常”。在异常处理域内,您可以通过向 NSException 对象发送另一个 raise 消息或使用它与另一个 @throw 指令来将本地异常处理程序捕获的异常重新传播到更高级别的处理程序。如需进一步了解,可以参考文档。