swift - 在 Swift 中捕获 Objective-C 异常

标签 swift exception-handling swift2 nsexception

我正在尝试使用 obj.setValue(value, forKey: key) 在我的 Swift 代码中设置一个 @objc 对象的值。

当对象具有正在设置的属性时,它工作正常。但如果没有,我的应用程序就会严重崩溃,并出现未捕获的 NSException(“类不符合键值编码标准……”)。

我如何才能像在 Objective-C 中那样捕获和吸收此异常,以免使我的应用程序崩溃?我尝试将它包装在 Swift try-catch 中,但它提示说没有任何指令抛出并且什么都不做。

最佳答案

看这个answer :

//
//  ExceptionCatcher.h
//

#import <Foundation/Foundation.h>    

NS_INLINE NSException * _Nullable tryBlock(void(^_Nonnull tryBlock)(void)) {
    @try {
        tryBlock();
    }
    @catch (NSException *exception) {
        return exception;
    }
    return nil;
}

关于swift - 在 Swift 中捕获 Objective-C 异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35119531/

相关文章:

Java AspectJ 异常越狱

ios - 从任何 VC 获取协议(protocol)定义的变量值

ios - Adobe Creative SDK iOS Swift 'AdobeImageEditorPremiumAddOn' 不可用错误

ios - 自定义tableview滚动效果,如google底漆

c# - 什么会导致 throw 重置调用堆栈(我使用的是 "throw",而不是 "throw ex")

ios - 预取后从缓存中选取图像

swift - 使用 Core Data 通过 UIProgressView 在 Swift 中异步插入数据

ios - iOS 中的日期选择器使用 Swift 编程

ios - 围绕原点旋转整个 SKView

grails - Grails是否允许使用过滤器进行声明式异常处理?