我写过这个方法
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而不记录确切的异常消息
答案 0 :(得分:1)
您实际上并未将递归调用的返回值分配给任何内容。因此,您的第一个调用将返回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;
}