2012-11-17 30 views
-4

如果捕获块不在块的末尾,catch块的行为是什么。捕获块行为

private Boolean connect(String addr) { 
..... 
    try { 

     connected = true; 

    } catch (ExceptionType name) { 
     //log // print stack trace etc, but no explicit return 

    } catch (ExceptionType name) { 

    } 

    if (some_other_condn) { 

    .. 
    } 
} 

如果我不想在代码块中执行代码的其余部分,是否需要在catch块内部返回?

+2

为什么你认为有人会在你还没有在程序中尝试过时回答? – Rndm

+2

这个问题可能会降低您的代表,因为它需要更长的时间才能获得您的编辑权限。请不要使用我们作为仆人。 – Doorknob

+0

我不太流利的Java。也认为人们会轻视它。对不起,听起来像你说的。 – bsr

回答

3

是的,如果您不想执行其余代码,您需要从catch块中返回。或者,最好将其余的代码放入try块本身。

try { 
    connected = true; 
    if (some_other_condn) {  
     //... 
    } 
} catch (ExceptionType name) { 
    //log // print stack trace etc, but no explicit return 
} catch (ExceptionType name) { 

} 
1

是的,这是正确的。如果你不想执行其余的代码,你需要返回(但是你只会在异常情况下返回,我希望你知道)。成功案例你的return语句不会执行。