我是一名使用Java编程语言处理C++代码的程序员,需要在异常处理方面寻求帮助。
我的代码结构如下:
try{
...
}
catch( ... )
{
log("Exception occurred");
}
发生了异常,但try块非常庞大,无法进行调试,因此我需要对代码进行最小限度的修改,以便在异常上提供相关信息。
所以我在现有catch块之前添加了以下catch块(根据我的Java知识和C ++指南):
catch(exception e)
{
log(e.what());
}
然而,我仍然收到旧信息 - "发生异常"。尝试块中的代码包含许多低级函数,如
strncpy,memcpy
等。为什么这个
catch
块没有按预期工作?我该怎么做才能获取有关正在发生的异常和哪行代码的信息,类似于Java轻松提供的堆栈跟踪。
std::exception
在C++标准库中确实存在。对于Shailesh,您可以使用gdb来调试此类非标准异常。 - iammilind