NoExceptions 0.0.3

NoExceptions 0.0.3

Joe Susnick 维护。



  • joesus 和 samodom

NoExceptions

这是一个为 Swift 代码提供捕获 NSException 能力的库。

这对于 Swift 标准的 trycatch 机制不能捕获从 Objective-C 中抛出的 NSException 来说是很有用的。

语法

假设有一个可以抛出 NSException 实例的 Objective-C 方法,如下所示的 MyClass 示例,下面另一个示例将允许在 Swift 的 Error 类型中捕获异常。

@interface MyClass: NSObject

- (void)throwingMethod;
- (id)throwingGetter;

@end
try? trapping(trappable: myObject.throwingMethod)
try? trapping { myObject.throwingMethod() }
let foo = try? trapping { myObject.throwingGetter() }
try? trapping { let bar = myObject.throwingGetter() }
let baz = try? trapping(trappable: myObject.throwingGetter)

do {
    try trapping { myObject.throwingMethod() }
    let variable = try trapping { myObject.throwingGetter() }
    try trapping { let bar = myObject.throwingGetter() }
}
catch error as NSExceptionError {
    /// handle error containing exception
}