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

时间:2015-06-24 11:01:50

标签: swift exception

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

NSSetUncaughtExceptionHandler可以捕获异常:

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

NSSetUncaughtExceptionHandler无法捕捉异常:

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

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

2 个答案:

答案 0 :(得分:0)

如果您希望处理索引异常,那么您随时可以验证索引项

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
    }
}

答案 1 :(得分:-3)

已经有一个详尽解答的类似问题Error-Handling in Swift-Language。看看那里的第一个答案,其中包括Swift 2.0中有关此主题的最新更新。