这个方法我已经写了
private string FindInnerExceptionMessage(Exception ex)
{
string exceptionMsg = string.Empty;
if (ex.InnerException == null)
{
exceptionMsg = ex.Message;
}
else
{
ex = ex.InnerException;
FindInnerExceptionMessage(ex);
}
return exceptionMsg;
}
但是,在 FindInnerExceptionMessage 之后,它会逐步返回 exceptionMsg 并且不记录确切的异常消息
最佳答案
您实际上并未将递归调用的返回值分配给任何内容。因此,您的第一次调用将返回 String.Empty,因为 FindInnerExceptionMessage(ex.InnerException) 的值永远不会被指定为返回值(除非传递给第一次调用的异常没有内部异常,在这种情况下它将起作用)。尝试这样的事情:
private string FindInnerExceptionMessage(Exception ex)
{
string exceptionMsg = string.Empty;
if (ex.InnerException == null)
{
exceptionMsg = ex.Message;
}
else
{
exceptionMsg = FindInnerExceptionMessage(ex.InnerException);
}
return exceptionMsg;
}
关于java - 递归函数无法获取最里面的异常消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13612795/