exception-handling - 包装异常

标签 exception-handling exception

我经常想在异常消息中添加有用的信息。由于 Exception 类的 Message 属性没有公共(public) setter ,一个选项是将引发的异常包装在另一个选项中。

//...
catch(Exception e)
{
 throw new Exception("Some useful information.", e);
}

这是不好的做法,如果是这样,还有什么替代方法?

最佳答案

最好创建一个新异常,并带有指向原始异常的指针。您可以从旧异常中打印出新信息和消息。

在 InnerException 上查看此信息

http://msdn.microsoft.com/en-us/library/system.exception.innerexception.aspx

这是标准方法,这就是为什么 Microsoft 在他们的 Exception 类中内置了对此的支持。

关于exception-handling - 包装异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2035857/

相关文章:

java - JSP代码中的java.lang.NullPointerException

Java:关闭我的应用程序但出现异常

c++ - 在这个例子中,std::variant 是如何变成 valueless_by_exception 的?

c++ - 为什么不使用函数尝试 block 声明 main()?

java - 如何记录错误级别为ERROR的消息

来自未处理异常的 C++ 堆栈跟踪?

exception - 部分函数的 F# 异常处理

java - 抛出异常后继续流程

Java:套接字读取超时异常

c# - 如何在不丢失堆栈跟踪的情况下重新抛出 TargetInvocationException 的内部异常