我是一名Java程序员,正在尝试写一些C++代码。我遇到一个异常并试图诊断它的出处(遗憾的是,使用gdb运行时未抛出该异常)。然而,当我打印异常的what()方法时,只得到字符串"std::exception"。这是标准库中特定的内容还是许多标准异常都会返回这个字符串呢?这是我的打印代码:
} catch (const std::exception & ex) {
std::cout << ex.what() << std::endl;
}
输出结果就是:
std::exception
此外,我正在使用一个相当大的代码库,有可能这是因为我们自己的异常所导致的,但是我还没有通过常规的搜索技术找到它,因此我目前倾向于认为这来自标准库。
如果相关的话,我正在使用g++ 4.8。
std ::runtime_error
,std ::length_error
等(在此处之一)用.what()
进行通信。我认为这可能来自您自己的代码库。可能没有帮助,但如果我是您,我会在自己的代码中尝试递归grep'throw\s+std:: exception'
,如果没有找到任何内容,您可以尝试使用GCC头文件。 - Tony Delroy