什么时候抛出java异常

时间:2011-04-29 13:16:59

标签: java

请参阅下面的伪代码方法。如果对readUrls()的调用抛出异常,那是不是意味着closeConnection()将不会被执行,程序流将返回到调用getdata()的方法?

由于

getdata() throws Exception
{
     setup();
     readUrls();
     closeConnection();
}

4 个答案:

答案 0 :(得分:9)

你的假设是正确的。为避免这种情况,您可以执行以下操作:

getdata() throws Exception
{
    setup();
    try { 
        readUrls();
    } finally {
        closeConnection();
    }
}

答案 1 :(得分:2)

是的,如果readUrls()抛出异常,流将返回调用getdata()的方法,在那里会发生同样的事情,直到:

  • 有一个catch块,处理异常
  • 异常冒泡到主要方法/线程的run方法。

答案 2 :(得分:2)

抛出异常时,当前方法调用会中断并立即返回。使用try-catch-finally模式关闭连接(在finally语句中使用closeConnection()))

答案 3 :(得分:1)

这取决于您是否在readUrls()中没有处理异常,那么您所说的是正确的。这意味着您在try...catch方法中没有readUrls()