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