相关疑难解决方法(0)

C++显示异常时的堆栈跟踪

如果抛出异常,我想有办法向用户报告堆栈跟踪.做这个的最好方式是什么?是否需要大量的额外代码?

回答问题:

如果可能的话,我希望它是便携式的.我想要弹出信息,因此用户可以复制堆栈跟踪并在出现错误时通过电子邮件发送给我.

c++ exception-handling exception stack-trace

183
推荐指数
9
解决办法
19万
查看次数

如何知道导致异常的确切代码行?

如果我自己生成异常,我可以在异常中包含任何信息:源文件的许多代码行和名称.像这样的东西:

throw std::exception("myFile.cpp:255");
Run Code Online (Sandbox Code Playgroud)

但是未处理的异常或不是由我生成的异常是什么?

c++ exception

34
推荐指数
5
解决办法
3万
查看次数

DEBUG_NEW和__FILE__的用法是什么?

我看到了跟随宏,

#ifdef _DEBUG
#define new DEBUG_NEW
#UNDEF THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
Run Code Online (Sandbox Code Playgroud)

上面宏的用法是什么?

谢谢

c++

6
推荐指数
2
解决办法
7631
查看次数

禁用__LINE__宏?

我想做一些异常处理.我打算使用__LINE____FILE__宏.

我有一些标题Vectors.hpp,其中我实现了一个矢量结构的类.在这个类中,我实现了,operator []并且每次将此运算符与out of bounds索引一起使用时,我想抛出一个异常.我在一些源test.cpp中测试了这个类.我希望能够在test.cpp中看到确切的行.

但是我知道__LINE__每次包含一些头文件时都会禁用宏,所以我得到的是Vectors.hpp中的行,我处理异常而不是test.cpp中的行.有没有一个很好的方法来解决这个问题?或者,如何实现自己的__LINE__宏?

c++ macros

2
推荐指数
1
解决办法
194
查看次数

标签 统计

c++ ×4

exception ×2

exception-handling ×1

macros ×1

stack-trace ×1