0

Main 関数では、try_block が例外をスローした後、関数は中断されるはずです。私の質問は、次の try_block まで実行し続けるにはどうすればよいかということです。以下に例を示します。

public static void main(String [] s){
    ABC aBC = new ABC();
    try {
        aBC.execute();
    } catch (Exception e) {
        _log.error(ErrorCodeEnum.ERROR,
                "XXXXXXX!!! in " + new Date(),e);
    }
    BCD bCD = new BCD();
    try {
        bCD.execute();
    } catch (Exception e) {
        _log.error(ErrorCodeEnum.ERROR,
                "YYYYYYYYYYY!!! in " + new Date(),e);
    }
}
4

2 に答える 2

0

念のため、finally次のように、実行するステートメントをブロックでラップできます。

ABC aBC = new ABC();

try
{
    aBC.execute();
}
catch (Exception e)
{
    _log.error(ErrorCodeEnum.ERROR, "XXXXXXX!!! in " + new Date(), e);
}
finally
{
    BCD bCD = new BCD();

    try
    {
        bCD.execute();
    }
    catch (Exception e)
    {
        _log.error(ErrorCodeEnum.ERROR, "YYYYYYYYYYY!!! in " + new Date(), e);
    }
}

finally外側のブロックで例外が発生しても、ブロック内のステートメントは実行されtryます。

于 2012-05-23T02:52:24.260 に答える
0

コードはそのままで動作するはずです。つまり、最初のブロックが例外をスローしてキャッチした場合でも、2 番目のブロックが実行されるはずです。

ただし、本当にすべてをキャッチしたい場合Throwableは、キャッチすることを検討することをお勧めします。Exception特に、java.lang.Errorは Exception のサブクラスではなく、Throwable のサブクラスです。

于 2012-05-23T02:34:40.690 に答える