我试图执行以下操作:
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
(在我看来,提出异常看起来并不干净)
答案 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.
}