int* p = nullptr;
int main() {
try {
cout << *p;
}
catch (exception &p) {
cout << p.what();
}
return 0;
}
为什么这样不能打印出错误呢
因为访问空指针触发的异常由操作系统发出,但是这个异常不是一个C++异常,一般C++程序捕捉不到这类异常。要在程序里捕捉这个异常,需要借助于编译器(比如MSVC /EHa选项)或操作系统API(比如Windows API, SetUnhandledExceptionFilter)
打印错误?题主想打印出什么错误?
希望对题主有所帮助,可以的话,帮忙点个采纳!