Java 在catch块中调试返回语句

Java 在catch块中调试返回语句,java,exception,Java,Exception,我正在开发一个android应用程序,其中使用了以下代码片段: private Boolean myMethod(boolean isOnline) { try { if (isOnline) { ... return true; } else { ... return true; } } catch

我正在开发一个android应用程序,其中使用了以下代码片段:

private Boolean myMethod(boolean isOnline) {
    try {
        if (isOnline) {
            ...
            return true;    
        } 
        else {
            ...
            return true;
        }
    } 
    catch (SocketTimeoutException e) {
        this.e = e;
        return false;
    } catch (IOException e) {
        this.e = e;
        return false;
    } catch (XmlPullParserException e) {
        this.e = e;
        return false;
    } catch (Exception e) { 
        this.e = e;
        return false;
    }
}
当我调试代码时。最后一个catch块中的return语句
returnfalse时不执行
this.e=e
这个.e
null
。如果我拆下最后一个挡块

catch (Exception e) { 
    this.e = e;
    return false;
}
然后执行下面catch块中的return语句

catch (XmlPullParserException e) {
    this.e = e;
    return false;
} 

我犯了什么错误

您的错误是添加此块:

catch (Exception e) { 
    this.e = e;
    return false;
}

它将捕获所有内容,导致XmlPullParserException不会被调用IMO。

执行此代码时调用哪个异常对
异常进行跟踪通常是个坏主意,因为您可能会捕获一些与您不对应的
异常,因此,您应该始终只捕获
try
块可能抛出的特定异常。这可能就是这里发生的情况,您正在输入
异常
,因为它比
XmlPullParserException
更通用。您想要实现什么?您的意思是说,当捕获异常时,这个.e仍然为空???@Amith GC。没错,你是对的。我该怎么办?真的吗??如果代码抛出XmlPullParserException,实现的代码应该调用XmlPullParserException,因为最后添加了异常。我尝试的一个小代码测试抛出了
NullPointerException
,捕获了
NullPointerException
Exception
,但与您的答案不太一致。嗨,伙计们,谢谢你的反馈。我猜我错了。但是异常为null:-(@RakeshL,这是一个非常奇怪的情况。除非我们看到所有相关的代码,否则我们只是猜测。顺便问一下,你想要这个.e做什么?