java - 递归函数无法获取最里面的异常消息

标签 java recursion exception

这个方法我已经写了

    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/

相关文章:

Java.util.Date 空输出

java - Lwjgl MouseDwheel 没有得到 0

java - 抛出异常和捕获异常?

c# - 在 Azure Function 中找不到 EF 的 Getter 方法

c - 仅使用递归来执行此操作

java - JerseyClient 不会针对 4xx 和 5xx 响应引发异常

java - 从另一个 Java 函数调用 Graphics 函数

java - Tomcat - 不会加载我的 META-INF\services\javax.servlet.ServletContainerInitializer 文件?

java - 使用各种字段递归解析字符串的最佳方法

c - 从数组创建二叉树的问题