【发布时间】:2022-01-12 02:19:16
【问题描述】:
我在定位发生错误的地址时遇到问题,我的整个代码在“try”语句中运行,遗憾的是,每当出现问题时,我都需要使用旧的 try and fail 方法来查找错误删除我的部分代码。有没有更好的方法?
我当前的代码:
try
{
do
{
if (somefunction)
if (somefunction2)
if (somefunction3)
if (somefunction4)
}
while (false);
}
catch (...)
{
// todo: somehow get the address where the error occurred
Logger::Log("Exception\n");
}
【问题讨论】:
-
异常消息为您提供了引发异常的地址。目前,您忽略了 Exception 对象中可用的所有信息,只需将其丢弃并记录无用信息“Exception”。此外,根据您使用的 IDE,您通常可以在引发异常时查看堆栈跟踪,这样您就可以查看发生异常的确切位置。
-
您发布的代码根本没有显示您使用异常。您只是在记录绝对无用的短语“异常”。 Exception 对象包含您可以使用的信息,但前提是您实际查看它。
-
@KenWhite "异常消息为您提供了引发异常的地址" - 对于纯 C++ 异常,情况并非如此