Ant*_*Ant -1 c# exception-handling
在没有使用方法递归或goto语句的情况下发生异常后,有没有简单的方法在try/catch块中重复代码?我正在调用一个Web服务,然后使用Entity Framework将该数据推送到SQL数据库,如果第一个步骤在第一个步骤成功后失败,我宁愿采用更简单或更简洁的方式重新尝试该步骤而不是递归相同的方法(这两个步骤在不同的方法中用于此目的)或使用goto语句.
首先,如果你陷入catch障碍,那么最好做清理和记录,而不是用goto或者爬回来recursion.
现在回答你的问题;
保持你的两个步骤在一个Transaction块内,并按照尝试输入的方法,否则尝试执行一段代码,直到你成功或有限次数.
//Code outline only idea and not production quality code.
var timesTried=0
while(timesTried<5) //here I try trying to execute 5 times
{
using(var tran = new TransactionScope())
{
CallMethodA();
CallMethodB();
tran.Complete();
timesTried=6
}
timesTried++;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1587 次 |
| 最近记录: |