我目前正在记录错误,并希望获得最具描述性的详细信息。我知道我可以捕获许多不同类型的例外,但Exception.Message
和Exception.InnerException.Message
之间有什么区别?
答案 0 :(得分:6)
程序可以捕获异常并重新引发不同的异常,将原始捕获的异常作为InnerException传递。例如,Exception(String, Exception)
构造函数执行此操作。这种情况发生在.NET Framework本身,TypeInitializationException,TypeLoadException,TargetInvocationException等以这种方式引发。
内部异常完全与引发的异常无关,因此记录内部异常非常非常重要,以便有必要诊断问题的根本原因。
最简单的方法是在异常对象上使用ToString()方法。其中提供了异常消息,堆栈跟踪并遍历内部异常。你需要的一切。