我刚开始使用CLion,试着写一个简单的程序来理解它是如何工作的。我在Windows 8 + cygwin上的程序是:
CLion
Windows 8 + cygwin
int main() { throw std::exception(); }
我在控制台中得到输出:
C:\....\bin.exe Process finished with exit code 0
关于程序被中止的消息在哪里?什么都没有,我应该如何检测我的程序是否真的被抛出异常而中止了呢?
h6my8fg21#
这样做是因为您没有使用try and catch指令,并且会发生类似堆栈意外的情况。在一个函数中,如果你没有使用catch指令,它会沿着堆栈向下移动,直到到达主函数,如果没有catch,程序就会终止。如果你的函数抛出了一个没有catch的异常,它会终止执行并返回到调用者函数。如果调用者函数是主函数,并且您没有使用catch,则程序终止。它沿着堆栈向下移动,如果在函数链的某个位置没有catch,它将终止程序。
try and catch
catch
1条答案
按热度按时间h6my8fg21#
这样做是因为您没有使用
try and catch
指令,并且会发生类似堆栈意外的情况。在一个函数中,如果你没有使用catch
指令,它会沿着堆栈向下移动,直到到达主函数,如果没有catch
,程序就会终止。如果你的函数抛出了一个没有catch
的异常,它会终止执行并返回到调用者函数。如果调用者函数是主函数,并且您没有使用catch
,则程序终止。它沿着堆栈向下移动,如果在函数链的某个位置没有catch
,它将终止程序。