【发布时间】:2017-04-12 05:46:00
【问题描述】:
我有一个 List 或 jobs 需要 x 步(比如 5 步)。每个步骤都必须成功才能继续,如果任何步骤失败,则必须提出票证并且必须没收当前job的执行并继续下一个job。
这是我目前拥有的(它就像一个魅力)。
for(Job aJob: jobs){
// Step 1
try{
Obj objRet1 = method1();
// use objRet1;
}
catch(Exception e){
raiseTicket(errMsg1,e);
break;
}
// Step 2
try{
Obj objRet2 = method2();
// use objRet2;
}
catch(Exception e){
raiseTicket(errMsg2,e);
break;
}
// Step 3
try{
Obj objRet3 = method3();
// use objRet3;
}
catch(Exception e){
raiseTicket(errMsg3,e);
break;
}
...
// Step 5
}
IMO,这不是很优雅且易于阅读。我想把它浓缩成下面的样子。
for(Job aJob: jobs){
step1();
step2();
..
step5();
}
step1(){
try{
...
}
catch(Exception e){
raiseTicket(errMsg1,e);
break;
}
}
step2(){
}
...
有人可以说明如何改进这个程序吗?请注意,返回一个值或将其存储在方法参数中也可能不起作用,因为这里试图实现的是避免break 执行所需的样板代码,并将它们整齐地打包在一个可读的方法中。
【问题讨论】:
标签: java loops for-loop iteration break