调试catch块中的return语句

时间:2014-04-21 07:39:25

标签: java exception

我正在开发一个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 false;中的return语句在不执行this.e = e;this.enull的情况下执行。如果我删除最后一个catch块

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

然后执行以下catch块中的return语句

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

我犯了什么错误?

1 个答案:

答案 0 :(得分:0)

你的错误是添加了这个块:

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

它将捕获所有内容,导致您的XmlPullParserException未被调用IMO。