SIGABRT C ++,抛出异常

时间:2012-11-20 00:31:20

标签: c++ sigabrt

很抱歉,如果帖子是新手,我主要是数学家。

我正在为我的一个关于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。我知道它忘记了一些基本的东西,但不能把它固定下来。感谢

1 个答案:

答案 0 :(得分:4)

我发布了这个答案,所以这个问题就不再显示了。 @Mankarse作为评论正确而迅速地回答了这个问题,所以如果他们发帖,请接受他们的回答,而不是我的回答。


这里的异常没有被捕获,因为被抛出的对象是某种枚举类型,上面的代码捕获int s。

要捕获引发的枚举值,请使用catch (MyEnumType e) { if (e == MY_ENUM) ... }代替