如果抛出异常,我想有办法向用户报告堆栈跟踪.做这个的最好方式是什么?是否需要大量的额外代码?
回答问题:
如果可能的话,我希望它是便携式的.我想要弹出信息,因此用户可以复制堆栈跟踪并在出现错误时通过电子邮件发送给我.
如果我自己生成异常,我可以在异常中包含任何信息:源文件的许多代码行和名称.像这样的东西:
throw std::exception("myFile.cpp:255");
Run Code Online (Sandbox Code Playgroud)
但是未处理的异常或不是由我生成的异常是什么?
我看到了跟随宏,
#ifdef _DEBUG
#define new DEBUG_NEW
#UNDEF THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
Run Code Online (Sandbox Code Playgroud)
上面宏的用法是什么?
谢谢
我想做一些异常处理.我打算使用__LINE__和__FILE__宏.
我有一些标题Vectors.hpp,其中我实现了一个矢量结构的类.在这个类中,我实现了,operator []并且每次将此运算符与out of bounds索引一起使用时,我想抛出一个异常.我在一些源test.cpp中测试了这个类.我希望能够在test.cpp中看到确切的行.
但是我知道__LINE__每次包含一些头文件时都会禁用宏,所以我得到的是Vectors.hpp中的行,我处理异常而不是test.cpp中的行.有没有一个很好的方法来解决这个问题?或者,如何实现自己的__LINE__宏?