2

从 Linux 我知道,如果 C++ 程序抛出异常,异常类型和消息会在程序终止时打印在终端上。然而,在 mac 上,你得到的唯一东西是:

libc++abi.dylib: terminate called throwing an exception
Abort trap: 6

当然,我可以在调试器中运行该程序,但这通常是为了查看异常类型和消息而产生的更多开销。

有什么方法可以使用任何魔术命令在 mac 上启用异常类型和消息打印?

编辑:我知道用异常处理来处理这种情况的正确方法是什么。更多的是出于好奇,是否可以在 mac 上重现 linux 行为。

4

1 回答 1

1

如果您想保证将C++ 异常的信息打印到控制台,您可以添加一个 try/catch 块,main()如下所示。

#include <exception>
#include <iostream>

int main(int argc, char* argv[])
{
    try { return mymain(argc, argv); }
    catch(std::exception& e)
    {
        std::cout << "Unhandled exception thrown: " << e.what() << std::endl;
    }
}
于 2013-05-27T19:06:27.023 回答