找到最内层异常的正确方法?

Vin*_*vic 10 c# exception-handling exception

我正在使用一些类,这些类在抛出时具有相对较深的InnerException树.我想记录并采取最内部的异常,这是具有问题真正原因的异常.

我目前正在使用类似的东西

public static Exception getInnermostException(Exception e) {
    while (e.InnerException != null) {
        e = e.InnerException;
    }
    return e;
}
Run Code Online (Sandbox Code Playgroud)

这是处理异常树的正确方法吗?

Hen*_*ric 11

我认为你可以使用以下代码获得最内层的异常:

public static Exception getInnermostException(Exception e) { 
    return e.GetBaseException(); 
}
Run Code Online (Sandbox Code Playgroud)