gpt4 book ai didi

java - 执行try/catch中的所有语句

转载 作者:行者123 更新时间:2023-12-01 17:44:56 26 4
gpt4 key购买 nike

我在一个 try block 中有一堆类似的语句,我希望它们全部执行,即使其中一些失败。它看起来像这样:

try {
doThing1();
doThing2();
doThing3();
doThing4();
} catch (Exception e) {
System.out.println(e.getMessage());
}

但是,例如,如果 doThings2() 失败,则 3 和 4 将不会执行。我怎样才能让它们全部执行?我不想将它们每个都放在自己的 try/catch block 中。

最佳答案

您可以编写一个执行一组调用的函数,即使抛出异常也不会停止:

public void doThing(Runnable... invocations){
for (Runnable invocation : invocations){
try{
invocation.run()
}
catch (Exception e) {
System.out.println(e.getMessage());
}
}
}

如果方法位于同一个类中,则以这种方式使用它:

doThing( this::doThing1, this::doThing2, this::doThing3, this::doThing4);

否则,请在语句前添加正确的类/实例:

doThing( () -> foo.doThing1(),  () -> foo.doThing2(),  () -> foo.doThing3(),  () -> foo.doThing4());

关于java - 执行try/catch中的所有语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56654874/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com