在软件开发中,经常会有这样一种需求:当发生异常、特殊情况、失败等条件的时候,重试执行,最大重试次数为N次。如果超过N次还是没有成功,则跳过。
这个问题常常常常令人感觉有些棘手,因为java没哟goto,而且要对次数、失败条件进行判断比较等。
当特殊条件出现才反复,则需要判断特殊条件,需要if语句。
没有成功、跳过,说明程序没有因为特殊情况挂掉,要捕获异常和特殊情况。在特殊条件发生时做一些补救(重试处理)。
通常会将最大重试次数作为系统的参数让用户配置,并且对数据范围做处理。
......
int redo = 0;
//重试次数 while(redo<MAXTRY+1){
//MAXTRY为最大重试次数 try{
doSomething();
//可能发生特殊情况的方法 break;
//执行成功后直接退出此循环 }
catch{
redo++;
//异常时,重试次数增加 continue;
//结束本次循环 }
}
......
本文转自 leizhimin 51CTO博客,原文链接:http://blog.51cto.com/lavasoft/204676,如需转载请自行联系原作者