一尘不染

如何在不引发Java异常的情况下摆脱try / catch块

java

我需要一种从try / catch块的中间中断而又不会引发异常的方法。类似于中断并继续for循环的操作。这可能吗?

我对于抛出一个自定义异常(将其命名为“
BreakContinueException”)变得很奇怪,该异常在其catch处理程序中什么都不做。我敢肯定这很扭曲。

因此,我不知道任何直接的解决方案吗?


阅读 369

收藏
2020-12-03

共1个答案

一尘不染

正确的方法可能是通过将try-catch块放在单独的方法中来分解该方法,并使用return语句:

public void someMethod() {
    try {
        ...
        if (condition)
            return;
        ...
    } catch (SomeException e) {
        ...
    }
}

如果代码包含很多局部变量,则您也可以考虑使用StephenCbreak所建议的带标记的块中的a

label: try {
    ...
    if (condition)
        break label;
    ...
} catch (SomeException e) {
    ...
}
2020-12-03