很抱歉,如果帖子是新手,我主要是数学家。
我正在为我的一个关于Operations Research的课程编写一个小C ++命令行工具。
我有类似的东西:
try {
if( *some condition* ) {
throw MY_ENUM;
}
...
}
catch (int e) {
if (e == MY_ENUM) {
// output some diagnostics and exit
}
...
}
但我一直在抛出SIGABRT而不是MY_ENUM。我知道它忘记了一些基本的东西,但不能把它固定下来。感谢
答案 0 :(得分:4)
我发布了这个答案,所以这个问题就不再显示了。 @Mankarse作为评论正确而迅速地回答了这个问题,所以如果他们发帖,请接受他们的回答,而不是我的回答。
这里的异常没有被捕获,因为被抛出的对象是某种枚举类型,上面的代码捕获int
s。
要捕获引发的枚举值,请使用catch (MyEnumType e) { if (e == MY_ENUM) ... }
代替