以下是伪代码:
myGoto:
try
{
// do some db updating
myDB.doOptimisticConcurrency();
} catch (MyConcExeption ex) {
if (tried < fiveTimes) {
myDB.Refresh();
tried++;
goto myGoto;
}
}
我在一个方法中有多个try-catch块,并且我不想从一开始就为每个抛出的异常重新调用我的方法。在这种情况下使用
goto
是否可以接受? 最佳答案
您可以将其更改为:
while (tried < fiveTimes)
try
{
// do some db updating
myDB.doOptimisticConcurrency();
break;
}
catch (MyConcExeption ex)
{
tried++;
myDB.Refresh();
}