在Swift中尝试捕捉exception
是否有可能在Swift中捕捉exception? 给出以下代码:
NSException.raise(NSRangeException, format: "Now you've gone too far!", arguments: CVaListPointer(fromUnsafePointer: UnsafePointer()))
是否有可能防止例外崩溃整个程序? 也就是说Objective-C中下面的Swift等价物是什么:
@try { [NSException raise:NSRangeException format:@"Now you've gone too far!"]; }
它没有exception处理, 开发人员论坛中的这个讨论讨论了为什么可能如此 :
但请记住,cocoa和cocoa触摸传统上并不意味着你要抓住例外; 他们打算让你不要把他们摆在首位。 普通错误应该用可选types和NSError参数处理; 你应该通过编写更好的代码来解决导致断言失败的任何情况(这似乎是Swift中唯一的exception抛出机制)。
我相信,从今天起,斯威夫特并不支持这一点。 它将最有可能被添加到未来的testing版。