如何在不引发 Java 异常的情况下从 try/catch 块中脱离出来
2022-08-31 14:10:51
我需要一种方法来打破尝试/捕获块的中间,而不会引发异常。类似于中断并继续循环的内容。这可能吗?
我一直在通过抛出一个自定义异常(将其命名为“BreakContinueException”)来获得奇怪的经历,该异常在其捕获处理程序中没有任何作用。我敢肯定这是非常扭曲的。
那么,我不知道任何直接的解决方案吗?
我需要一种方法来打破尝试/捕获块的中间,而不会引发异常。类似于中断并继续循环的内容。这可能吗?
我一直在通过抛出一个自定义异常(将其命名为“BreakContinueException”)来获得奇怪的经历,该异常在其捕获处理程序中没有任何作用。我敢肯定这是非常扭曲的。
那么,我不知道任何直接的解决方案吗?
正确的方法可能是通过将 try-catch 块放在单独的方法中来分解该方法,并使用 return 语句:
public void someMethod() {
try {
...
if (condition)
return;
...
} catch (SomeException e) {
...
}
}
如果代码涉及许多局部变量,您也可以考虑使用来自标记块的,如 Stephen C 所建议的那样:break
label: try {
...
if (condition)
break label;
...
} catch (SomeException e) {
...
}
您始终可以使用 from 循环构造或 aioobies 答案中指定的标记来执行此操作。break
break
public static void main(String[] args) {
do {
try {
// code..
if (condition)
break;
// more code...
} catch (Exception e) {
}
} while (false);
}