【发布时间】:2017-06-23 03:39:53
【问题描述】:
我有一个非常基本的 C++ 程序:-
#include <iostream>
#include <stdexcept>
int main(int argc, const char * argv[])
{
std::cout <<"Welcome .. "<<std::endl;
try {
throw std::runtime_error(std::string("Crazy exception"));
}
catch(std::exception& e) {
std::cerr << "error: " << e.what() << "\n";
exit(0);
} return 0;
}
每当我运行这个程序时,我看到的不是异常,而是Segmentation fault: 11
在调试器上,我在 throw 语句中看到了EXC_BAD_ACCESS(code=EXC_I386_GPFLT)。
我在 XCODE 上启用了异常。有没有人见过这种基本错误?
这真是要了我的命,我应该重新安装 XCODE 吗?如果是的话,干净安装的方法是什么?
直接从 APP STORE 重新安装 XCODE。同样的问题!!接下来是什么?我相信重新安装整个 OSX。在我懒洋洋地重新格式化机器之前,有人可以提供一些“可以”尝试的线索吗?
【问题讨论】:
-
how to catch a genereal exception and show its derived what() 可能重复 - 应该是
catch(std::exception const &e)? -
谢谢,但如果我忘记了 std:: 关键字,则会产生编译错误。我的代码中有 std:: 关键字。我相应地更新了我的问题。
标签: c++ exception exception-handling segmentation-fault