gpt4 book ai didi

C++ MSVC - 显示未捕获的异常消息

转载 作者:行者123 更新时间:2023-12-01 14:58:29 24 4
gpt4 key购买 nike

我有一个简单的 C++ 代码,我尝试使用 Visual Studio 2019 进行编译:

#include <iostream>
#include <stdexcept>

int main()
{
std::cout << "Hello World!\n";
throw std::runtime_error{ "TEST" };
return 0;
}

PowerShell 中运行此程序只会导致显示“Hello world”。根据我使用 GCC 的经验,我希望在终端输出的某处看到包含 TEST 的消息,例如:

Hello World!                                                                                                                                    
terminate called after throwing an instance of 'std::runtime_error'
what(): TEST
Aborted

这些是使用的编译器标志:

/permissive- /GS /GL /analyze- /W3 /Gy /Zc:wchar_t /Zi /Gm- /O2 /sdl /Fd"Release\vc142.pdb" /Zc:inline /fp:precise /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_UNICODE" /D "UNICODE" /errorReport:prompt /WX- /Zc:forScope /Gd /Oy- /Oi /MD /std:c++17 /FC /Fa"Release\" /EHsc /nologo /Fo"Release\" /Fp"Release\ThrowTest.pch" /diagnostics:column 

如何在 Windows 上使用 MSVC 编译此程序以显示运行时抛出的异常?

最佳答案

如何在 Windows 上使用 MSVC 编译此程序以显示运行时抛出的异常?

如果你想在能够编译后看到信息,你需要try catch block ,你需要捕获异常:

int runTimeError(){
std::cout << "Hello World!\n";
try{
throw std::runtime_error( "TEST" );
}catch (std::exception& ex){
std::cout << ex.what();
}
return 0;
}

关于C++ MSVC - 显示未捕获的异常消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58851154/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com