ios - swift 能捕捉到 fatal error 吗?

标签 ios swift try-catch fatal-error

我正在尝试使用 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/

相关文章:

c# - 在 try,catch block 之外运行代码是否有任何性能优势?

ios - iTunes Connect - 无法删除我刚刚创建的应用程序

objective-c - 轻量级迁移麻烦 iOS

ios - 裁剪 CIImage

swift - 如何在 UITableViewCell 类中使用prepare for segue

swift : import UIKit in each subclass?

ios - Game Center - 使用 Swift 发送和接收数据

syntax - coffeescript try/catch 的简写

r - tryCatch - 命名空间?

ios - 有没有人找到使用 UIWebView 加载带有无效服务器证书的 HTTPS 页面的方法?