Android尝试catch块

时间:2013-06-28 12:30:54

标签: android try-catch

我有以下尝试捕捉:

try
{
   while(run)
   {
      try
      {
         // try something 
      }
      catch
      {
        // error catch 1
      }
   }
}
catch()
{
   // error catch 2
}
finally 
{
   // DONE
}

根据我在error catch 1中抛出错误之后的情况,它将再次继续循环直到run为真,有时我的代码没有进行最后进入DONE码。我真的不知道它是怎么回事?

2 个答案:

答案 0 :(得分:4)

while循环将一直持续到:

  • run是假的,或
  • 在catch块中未捕获的try块中抛出异常。

例如:

while(true) {
    try {
        throw new AnException();
    } catch (SomeOtherException e) {}
}

将立即退出,因为您没有在catch块中捕获AnException(假设SomeOtherException不是AnException的超类)。

答案 1 :(得分:0)

  

按照我在错误捕获1中抛出错误后的状态,它将再次继续循环直到运行为真

如果您从Throwable 抛出任何catch1,它会转到下一个可以处理catch类型的Throwable。在这种情况下,循环中断。如果没有其他catch可以捕获Throwable类型,那么finally将执行,控件将转到调用方法。