Java 在Main函数中,在一个try块抛出一个异常之后,如何使它继续执行下一个try块
在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
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出错了。在我做了一些测试之后,它现在运行良好。谢谢你的帮助。我没有用最后的办法,因为我想我的老板可能不喜欢。无论如何,谢谢大家!!!;-)