use*_*085 6 c++ exception-handling objective-c ios
我的iPad应用程序使用Objective-C for UI,它调用一些C++函数进行计算.由于C++代码编写得不好,因此单独测试时有时会抛出异常或导致分段错误.但是,C++代码目前正由其他人开发,因此我不想更改它.是否有可能在Objective-C代码中捕获异常和分段错误,这样我就不需要更改C++代码了?我尝试了基本的try-catch,但似乎无法正常工作.(包装器是有缺陷的c ++函数)
@try {
wrapper([imageName UTF8String]);
}
@catch (NSException *e) {
NSLog(@"Error");
}
Run Code Online (Sandbox Code Playgroud)
当我运行我的应用程序并单击调用C++函数的按钮时,模拟崩溃并显示错误消息 libc++abi.dylib: terminating with uncaught exception of type NSException
你可以使用C++ try-catch与Objective-C++代码(.mm扩展名)
try {
wrapper([imageName UTF8String]);
}
catch (...) {
NSLog(@"Error");
}
Run Code Online (Sandbox Code Playgroud)
在64位进程中,您可以使用@catch(...)来捕获包括C++异常在内的所有内容
@try {
wrapper([imageName UTF8String]);
}
@catch (...) {
NSLog(@"Error");
}
Run Code Online (Sandbox Code Playgroud)
您可以在文件中编写 cpp 代码(扩展名为 .mm 而不是 .m),并使用 C++ try/catch,如下所示:
#include <stdexcept>
try
{
wrapper([imageName UTF8String]);
}
catch (const std::exception & e)
{
NSLog(@"Error");
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4409 次 |
| 最近记录: |