从try块跳转到finally块

时间:2014-10-06 09:52:21

标签: java

我试图执行以下操作:

String txt = "begin\n";

try{

    // some stuff

    if(some condition)
        JUMP TO FINALLY CODE

    // some other stuff

} finally {

    String txt += "end\n";
    return txt;

}

有没有办法在不引发异常的情况下实施JUMP TO FINALLY CODE(在我看来,提出异常看起来并不干净)

6 个答案:

答案 0 :(得分:7)

是的,一种方法就是从这个

这样的方法中得到return
String txt = "begin\n";

    try{

        // some stuff

        if(some condition)
            return;

        // some other stuff

    } finally {

        String txt += "end\n";

    }

答案 1 :(得分:5)

无需任何方法跳转到finally,因为此处始终finally阻止执行。是否有Exception

如果您不想执行代码行,可以使用return

 try {
      if(isThisShouldReturn()){
          return; // when if satisfied will return from try
      } else {
          // do the stuff
      }
  }finally {
      System.out.println("come to finally");
  }

答案 2 :(得分:3)

我的方法是否定条件:

String txt = "begin\n";

try{        
    // some stuff

    if(!someCondition) {
        // some other stuff
    }

} finally {     
    String txt += "end\n";
}

这将为您的示例提供预期的行为。

答案 3 :(得分:0)

我想返回并通过抛出异常是你可以从try块中找到finally块的唯一两种方法。

答案 4 :(得分:0)

您需要使用块标签并结合休息;类似的东西:

end_try: try {
  ...
  break end_try;
  ...
} finally {
  ...
}

或:

try {
  ...
  end_try: {
     break end_try;
  }

} finally {
  ...
}

答案 5 :(得分:0)

//从try块或..中抛出异常 //使用return call:

try
{
  if(true condition)
  {
    return;
  }
  else
  {
    //false condition do work....
  }
}

finally
{
   //always executed.
}