博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
“重试”的实现
阅读量:5980 次
发布时间:2019-06-20

本文共 601 字,大约阅读时间需要 2 分钟。

在软件开发中,经常会有这样一种需求:当发生异常、特殊情况、失败等条件的时候,重试执行,最大重试次数为N次。如果超过N次还是没有成功,则跳过。
 
这个问题常常常常令人感觉有些棘手,因为java没哟goto,而且要对次数、失败条件进行判断比较等。
 
在此做深入分析:
重试,意味着代码要反复执行,需要做循环。
当特殊条件出现才反复,则需要判断特殊条件,需要if语句。
有最大次数限制,说明循环有最大次数n<?。
没有成功、跳过,说明程序没有因为特殊情况挂掉,要捕获异常和特殊情况。在特殊条件发生时做一些补救(重试处理)。
 
针对谁上面的分析再写代码就容易很多了:
 
通常会将最大重试次数作为系统的参数让用户配置,并且对数据范围做处理。
 
下面是伪代码:
...... 


int redo = 0;     
//重试次数 

while(redo<MAXTRY+1){     
//MAXTRY为最大重试次数 

        
try

                doSomething();    
//可能发生特殊情况的方法 

                
break;                    
//执行成功后直接退出此循环 

        }
catch

                redo++;                 
//异常时,重试次数增加 

                
continue;             
//结束本次循环 

        } 



......
 
此方式适合Java、C#、C++等语言。
 
本文转自 leizhimin 51CTO博客,原文链接:http://blog.51cto.com/lavasoft/204676,如需转载请自行联系原作者
你可能感兴趣的文章
Dos 改动IP 地址
查看>>
Laravel 源码解读:php artisan make:auth
查看>>
【转】ionic run android 成功launch success,但是genymotion虚拟机没有显示
查看>>
苹果在GitHub上正式开源iOS内核源码
查看>>
测试人员面临的测试挑战和必备技能
查看>>
使用Flutter之后,我们的CPU占用率降了50%
查看>>
同事反馈环:为什么度量和会议还不够充分
查看>>
[转]十问 Linux 虚拟内存管理 (glibc)
查看>>
老司机带你深入浅出 Collection
查看>>
查询系统-vba
查看>>
[译]Spring Session 与 Spring Security
查看>>
python学习笔记(05)
查看>>
路由器NAT网络地址转换
查看>>
checkbox全选,全不选
查看>>
linux下的连接文件——软连接和硬连接的区别
查看>>
怎么查看linux文件夹下有多少个文件(mac同样)
查看>>
cacti监控一览无余
查看>>
第十六章--访问文件
查看>>
ASP.NET MVC学前篇之Ninject的初步了解
查看>>
Python自动化开发学习15-css补充内容
查看>>