我正在尝试使用外部 C++
库,该库已将其例外定义为:
enum MY_ERRORS {
ERR_NONE = 0,
ERR_T1,
ERR_T2,
};
然后在代码中抛出异常,如下所示:
if(...) {
throw ERR_T1;
作为C ++编程的新手,我会做类似的事情:
try {
call_to_external_library();
} catch(??? err) {
printf("An error occurred: %s\n", err);
} catch(...) {
printf("An unexpected exception occurred.\n");
}
如何确定投掷内容?
答案 0 :(得分:5)
您需要编写代码来处理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");
}
答案 1 :(得分:4)
您必须捕获类型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");
}