所以我要遍历一个帐户列表,我想破坏该列表中所有帐户的整个“ for循环”,并且同时在发生某种情况时同时引发异常:
accounts.forEach(account -> {
try {
if(isSomethingHappens()) {
String errorMsg = "bla bla, you can't do that cuz condition is happening";
printError(errorMsg);
throw new Exception(errorMsg); // AND I also, in addition to the exception, I wanna break the whole loop here
}
} catch (Exception e) {
printError(e);
}}
有人有什么优雅的方法吗?也许用我自己的例外包装它,并在这种ceratin盒子上只抓住它?我的需求是否有良好的已知做法?感谢您的帮助,并非常感谢!
一种执行此操作的好方法是重新引发内部catch
块中的错误。这将把控制权交给下一个外部try / catch。因此,在foreach
构造之外放置另一个try / catch块。
try
捕获。printError()
的东西完成了。forEach
。try
周围的forEach
捕获了重新引发的异常。