尝试引发异常会导致段错误

时间:2018-11-04 15:55:29

标签: c++ exception segmentation-fault throw

我有这段代码,当顶部指针为null时会引发异常。但是,它会输入if语句并立即进行段错误。我没有在任何地方更改此指针的值,并且从调试中知道它进入了语句。

std::string LinkedStack::pop() {
if (!top) {
    throw (std::out_of_range(""));
}
//...

这是抓手部分,我无法对其进行编辑,因为我是由教授提供的。

 try {
    testStack.pop();
    std::cout << "FAIL: should have thrown exception from pop"<< std::endl;
}
catch(std::out_of_range& e){
    printAssertEquals("Can't pop from an empty stack", e.what());
}

如果要紧,我正在使用Clion IDE并运行Windows计算机。我感觉这可能是系统问题,因为我与之交谈的每个人都无法知道问题出在哪里。谢谢!

编辑:这也是它崩溃时打印的输出消息,不过我看到它是调试器中的段错误:

抛出'std :: out_of_range'实例后调用

terminate   what():

进程以退出代码3完成

0 个答案:

没有答案