我正在尝试使用 Swift 2.0 try-catch。
我原来有如下代码
override func viewDidLoad()
{
var obj : Object?;
Hi( obj );
}
但是会报错
func Hi( open : Open? ) -> Open?
{
open!.Hi(); <-- here is error point. Fatal error !
print( "OK" );
return open;
}
因此我将 viewDidLoad() 中的代码更改为:
override func viewDidLoad()
{
try
{
var obj : Object?;
Hi( obj );
}
catch
{
print( "bug !!!" ); <- I want to this !!!
}
}
但它不起作用!!!
我想 swift 的 try-catch 与 C、C# 中的不同。
我怎样才能捕捉到 fatal error ?
以下可能是正确的快捷方式吗?
func Hi( open : Open? ) -> Open?
{
if let op = open
{
op.Hi();
print( "OK" );
return open;
}
else
{
return nil;
}
}
最佳答案
你不应该捕获 fatal error 。它表示编程错误。您不会发现编程错误,您会修复代码。崩溃是有意的,你无法阻止它是故意的。
涉及关键字 try、catch 和 throw 的内容在 Swift 2 中可用,但这与您似乎正在考虑的 C++ 异常完全不同。
关于ios - swift 能捕捉到 fatal error 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31335023/