Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/324.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在Main函数中,在一个try块抛出一个异常之后,如何使它继续执行下一个try块_Java - Fatal编程技术网

Java 在Main函数中,在一个try块抛出一个异常之后,如何使它继续执行下一个try块

Java 在Main函数中,在一个try块抛出一个异常之后,如何使它继续执行下一个try块,java,Java,在Main函数中,在try_块抛出异常后,函数应该被中断。我的问题是如何使它继续执行到下一个try_块。下面我举一个例子: public static void main(String [] s){ ABC aBC = new ABC(); try { aBC.execute(); } catch (Exception e) { _log.error(ErrorCodeEnum.ERROR, "XXXXXXX

在Main函数中,在try_块抛出异常后,函数应该被中断。我的问题是如何使它继续执行到下一个try_块。下面我举一个例子:

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);
    }
}

代码应按原样工作-即,如果第一个块抛出并捕获异常,则第二个块仍应执行


但是,如果你真的想抓住所有的东西,你可能需要考虑捕获<代码>可抛出的而不是<代码>异常< /代码>。特别是,不是Exception的子类,而是Throwable的子类。

为了确保,您可以将要执行的语句包装在
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);
    }
}

无论外部
try
块中是否发生异常,
finally
块中的语句都将被执行。

我在上面的代码中没有看到任何东西会阻止调用第二个try块,即使第一个块有异常,除非那个异常导致系统退出。事情是这样的:我试图运行这个主函数,当抛出第一个异常时,这个函数被停止了。我想要的是让它继续执行其余的代码。那么你们看到了什么异常?另一方面,错误表明“。谢谢你们。现在可以了。当我删除第7行中的“e”时,函数运行得很好,这很奇怪。为什么会这样?让我来调查一下。@Ryan-非常正确。但有时你想写一个不合理的应用程序:-)@mikera:同意,但我认为对于任何遇到这个答案的初级开发人员来说,这是值得注意的。你们说的都是真的,我确实需要打印这些具体信息来调查抛出的异常。我要试着用最后的方法来做这件事。。。。祝我好运!!:-)我要试试这个。。。。。希望在我完成之后,它看起来不会太奇怪谢谢你们。已经修好了。我没有改变任何事情。第一次它不工作的原因我怀疑是我的IDE出错了。在我做了一些测试之后,它现在运行良好。谢谢你的帮助。我没有用最后的办法,因为我想我的老板可能不喜欢。无论如何,谢谢大家!!!;-)