ios – swift可以捕获致命错误?

前端之家收集整理的这篇文章主要介绍了ios – swift可以捕获致命错误?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试使用 Swift 2.0 try-catch.

我原来有以下代码@H_502_3@

override func viewDidLoad()
{
    var obj : Object?;
    Hi( obj );
}

但它会产生错误@H_502_3@

func Hi( open : Open? ) -> Open?
{
    open!.Hi(); <-- here is error point. Fatal error !
    print( "OK" );

    return open;
}

因此我将viewDidLoad()中的代码更改为:@H_502_3@

override func viewDidLoad()
{
    try
    {
        var obj : Object?;
        Hi( obj );
    }
    catch
    {
        print( "bug !!!" ); <- I want to this !!!
    }
}

但它不起作用!@H_502_3@

我猜swift的try-catch与C,C#不同.@H_502_3@

我怎样才能发现致命错误?@H_502_3@

可能以下是适当的快速方式吗?@H_502_3@

func Hi( open : Open? ) -> Open?
{
    if let op = open
    {
        op.Hi();
        print( "OK" );

        return open;
    }
    else
    {
        return nil;
    }
}

解决方法

你不应该抓住fatalerror.它表示编程错误.您没有发现编程错误,修复了代码.崩溃是故意的,你故意不能阻止它.

涉及关键字try,catch和throw的东西在Swift 2中可用,但这与您似乎正在考虑的C异常完全不同.@H_502_3@

猜你在找的iOS相关文章