带有__PRETTY_UNCTION_的自定义错误处理程序
Custom error handler with __PRETTY_FUNCTION__
我试图构建自己的错误处理程序,根据我在枚举类errorNo{}中实现的一些错误号抛出错误。我还想包含使用__PRETTY_FUNCTION__
的源函数。错误处理程序如下(不太复杂的版本…带有std::string…没有来自枚举的errorNo):
void errorHandler(std::string message,int errorCode){
switch(errorCode)}{
默认值:
throw std::runntime_error(message);}}
然后称之为:
errorHandler(std::string("Error in:")+
__PRETTY_FUNCTION__
,0);
错误处理程序是否有一种方法可以在没有任何显式声明的情况下自动获取调用它的函数名?我试过了:
void errorHandler(std::string message,int errorCode,const char*functionName=
__PRETTY_FUNCTION__
){throw std::runntime_error(消息+"in"+functionName)
}
我收到一个警告,__PRETTY_FUNCTION__
只允许在函数中使用,即使在我得到输出后,我也会得到"顶级错误"。
您可以将__PRETTY_FUNCTION__
存储在该特定函数的std::string
中,然后将该字符串传递给errorHandler
函数。
类似这样的东西:
void foo()
{
std::string message, funcName;
message = "Error";
funcName = __PRETTY_FUNCTION__;
errorHandler(message, 0 , funcName);
}
请在此处查看现场演示。
相关文章:
- 错误处理.将系统错误代码映射到泛型
- 通过错误处理,在C++中可靠地获得用户十六进制输入
- posix_spawn():使用posix_scawn()时的错误处理问题
- 在C++中样板"冷/never_inline"错误处理技术的最佳方法是什么?
- 关于 istream 中的错误处理的问题
- 程序使用的 C 库中的错误处理C++
- C++ 错误检查 fstream open() 命令和一般字符串流错误处理
- 使用std::tie进行类似golang的错误处理,同时返回结果,是否有缺点?(C++11)
- Boost进程"系统"功能中的错误处理
- RPN计算器c++错误处理和多个运算符
- 提升精神 x3 错误处理程序与期望
- 构造函数中的错误处理而不会失败
- 当 C++ 中函数参数的输入类型(类)错误时的错误处理
- 关于 ocilib 错误处理的问题,如何使用 ocilib 正确捕获日志错误?
- 我可以使用 std::optional 进行错误处理吗?
- C++ main() 末尾关于错误处理的错误
- 抽象包装带有异常的 C 错误处理的最佳方法
- vwprintf错误处理(ERRNO显示0)
- C++ 使用枚举进行错误处理
- 在 C++ 中创建自己的错误处理机制