如果在项目中使用异常机制,我们一般会定义一个类继承自std::exception,在throw时附带上自定义的信息。但是有时我们还希望知道某个异常是从何处抛出的,也就是源代码的文件,函数,行号信息。于是就写了这个ExceptionEx类,继承该类就能够很容易地获取上述信息。ExceptionEx的实现在这里:ExceptionEx
用法如下:
#include <iostream>
#include "ExceptionEx.h"
class MyException : public YaoUtil::ExceptionEx
{
public:
MyException(const std::string& what,
const std::string& file,
const std::string& func,
int line) : YaoUtil::ExceptionEx(what, file, func, line)
{
}
};
int main()
{
try
{
// 抛出异常,使用宏代替throw关键字
THROW_EX(MyException, "just test");
}
catch (MyException& me)
{
std::string info = me.GetInfo();
std::cout<<info<<std::endl;
}
std::cin.get();
return 0;
}
使用ExceptionEx类捕获并获取异常来源信息
本文介绍如何使用自定义异常类ExceptionEx来捕获异常,并获取异常抛出时的文件名、函数名和行号信息,通过实例演示了如何实现并使用这一功能。

1万+

被折叠的 条评论
为什么被折叠?



