swift - 如何处理未捕获的异常

swift - How to deal with uncaught exception

提问人:Injoy 提问时间:6/24/2015 更新时间:12/9/2019 访问量:1915

问:

如果使用 ,则仅处理 objective-C 运行时错误。https://developer.apple.com/library/mac/documentation/Cocoa/Reference/Foundation/Miscellaneous/Foundation_Functions/index.html#//apple_ref/c/func/NSSetUncaughtExceptionHandlerNSSetUncaughtExceptionHandler

NSSetUncaughtExceptionHandler可以捕获异常:

var a: NSArray = [""]
println(a[2])

但无法捕捉到异常:NSSetUncaughtExceptionHandler

var a = [""]
println(a[2])

如何快速处理非 Objective-C 运行时错误(swift 运行时错误)?

SWIFT 异常

评论

0赞 Hasan Sawaed 8/4/2016
我有同样的问题,似乎 NSSetUncaughtExceptionHandler 不适用于 swift 异常。

答:

-3赞 Ivan Rigamonti 6/24/2015 #1

已经有一个详尽的类似问题,Swift-Language中的错误处理。看看那里的第一个答案,其中包括 Swift 2.0 中关于这个主题的最新更新。

评论

2赞 Injoy 6/25/2015
我的意思是未捕获的异常处理程序,而不是try catch
0赞 Durai Amuthan.H 2/23/2016
@Injoy - 你有解决方案吗
0赞 Fizker 3/24/2016
这并不能回答这个问题。链接的问题是关于用户级错误,这个问题是关于捕获和处理致命错误的。我对这个主题的研究表明,目前没有类似的方法来捕获致命错误。
0赞 Nick 8/5/2019 #2

如果您希望处理索引异常,则始终可以验证索引项

extension Collection {
    /// Returns the element at the specified index if it is within bounds, otherwise nil.
    public subscript (safe index: Index) -> Element? {
      return indices.contains(index) ? self[index] : nil
    }
}