2014-10-01 80 views
-1

当您有多个块时可以向我解释异常处理的顺序。 例如,我有一个匿名块,它有两个过程Proc_A和Proc_B。 Proc_A被调用,异常在Proc_A中处理。接下来会发生什么?它会回到外部块异常还是会退出?异常处理流程

感谢

+0

一步一步来了解。一旦将句柄赋予了异常块,调用者就不会意识到错误,除非把句柄返回给调用者。你可以**开始**阅读http://lalitkumarb.wordpress.com/2014/05/02/when-others-then-null-a-bug/ – 2014-10-01 19:39:35

回答

0

的问题是不明确的,但这里是我在它去:

假设你有下面的代码:

public void procA() throws Exception { 
    procB(); 
} 

public void procB() throws Exception { 
    try { 
    // code that throws an exception 
    } catch (Exception exc) { 
     // code to handle the exception 
    } 
} 

现在,如果catch块处理该异常它可能有两种方法。 1.您只需处理异常,并停止传播异常。正常返回到procA。 2.你决定抛出异常进一步或抛出一个新的异常,像这样:

throw exc 

throw new Exception(); 

在这种情况下,异常将被传播到PROCA。所以这一切都取决于你想要的。