Cha*_*hau 4 c++ exception-handling shared-libraries
我正在尝试使用已将其异常定义为的外部 C++库:
enum MY_ERRORS {
ERR_NONE = 0,
ERR_T1,
ERR_T2,
};
Run Code Online (Sandbox Code Playgroud)
然后在代码中抛出如下异常:
if(...) {
throw ERR_T1;
Run Code Online (Sandbox Code Playgroud)
作为C ++编程的新手,我会做类似的事情:
try {
call_to_external_library();
} catch(??? err) {
printf("An error occurred: %s\n", err);
} catch(...) {
printf("An unexpected exception occurred.\n");
}
Run Code Online (Sandbox Code Playgroud)
如何确定抛出了什么?
您将需要编写代码来处理catch块中的枚举类型:
try {
call_to_external_library();
} catch(MY_ERRORS err) { // <------------------------ HERE
printf("An error occurred: %s\n", err);
} catch(...) {
printf("An unexpected exception occurred.\n");
}
Run Code Online (Sandbox Code Playgroud)
您必须捕获类型MY_ERRORS,然后与可能的值进行比较
try {
call_to_external_library();
} catch(MY_ERRORS err) {
printf("An error occurred: %s\n", err);
} catch(...) {
printf("An unexpected exception occurred.\n");
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3954 次 |
| 最近记录: |