【发布时间】:2013-12-02 13:23:49
【问题描述】:
我的 iPad 应用程序使用 Objective-C 作为 UI,它调用了一些 C++ 函数进行计算。由于 C++ 代码写得不好,单独测试时有时会抛出异常或导致分段错误。但是,C++ 代码目前正在由其他人开发,所以我不想更改它。是否可以在我的 Objective-C 代码中捕获异常和分段错误,以便我不需要更改 C++ 代码?我尝试了基本的 try-catch,但它似乎不起作用。 (包装器是有缺陷的 c++ 函数)
@try {
wrapper([imageName UTF8String]);
}
@catch (NSException *e) {
NSLog(@"Error");
}
当我运行我的应用程序并单击调用 C++ 函数的按钮时,模拟崩溃并显示错误消息libc++abi.dylib: terminating with uncaught exception of type NSException
【问题讨论】:
-
我认为这行不通,但你能用 Objective-C++ 编写代码并以 C++ 的方式捕获异常吗?
-
为什么不用c++ try/catch 写一个包装器并调用它呢?
-
您的 C++ 代码不会抛出
NSException实例。如果您想忽略所有异常,请改用catch (...)。
标签: c++ ios objective-c exception-handling