如何让 CLion 显示异常?

How to get CLion to show exceptions?

本文关键字:异常 显示 CLion      更新时间:2023-10-16

我安装了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 显示异常,可以将其配置为这样做。请注意,这仅适用于 CLion 调试可执行文件的情况,在 CLion 之外,您的可执行文件将继续像您已经看到的那样运行。

  • 转到运行,然后查看断点
  • 转到异常断点以及引发任何断点
  • 要在引发异常时显示堆栈跟踪,请检查堆栈跟踪
  • 如果您希望程序停止进行干预,请检查启用抛出时间
  • 确保使用"运行/
  • 调试"而不是"运行/运行"来启动程序。