【发布时间】:2020-07-14 16:30:19
【问题描述】:
我安装了大概默认配置的 CLion。我认为它有问题,因为我看不到异常。例如这段代码:
int main(){ throw 5; }
仅打印Process finished with exit code 0
- 为什么不打印异常?
- 为什么打印的是 0 而不是 1?
比较:
int main(){try { throw 5; } catch(int x) { std::cout << x << '\n'; }}
这会打印 5,因此看起来代码运行正确并且异常被正确抛出。它只是被 CLion 以某种方式隐藏了。
编辑:这不是“没有看到任何控制台输出”的重复。我在我的问题中非常清楚地表明我确实看到了打印的控制台输出。我的问题特别关注异常,而不是一般的控制台输出。
【问题讨论】:
-
这是很多事情,但不是重复询问如何在 CLion 中获取控制台输出的问题 - 问题是是否可以打印未捕获的异常(最终调用
std::terminate),以及为什么它在std::terminate之后显示退出代码0(当std::abort的默认终止处理程序应该返回一个退出代码,表明终止不成功)。另一个重复是关于超出数组边界,而不是关于 C++ 异常。