2017-02-22 31 views
0

我有两个id(id1,id2),如果第一次失败,我想从服务器获取数据。如果在java中首次失败,执行服务器调用

try 
{ 
loadData1(id1); 
} 
catch(Exception e) 
{ 
loadData2(id2); 
} 

这是一个很好的做法还是有没有其他的选择呢?

+3

此举将它添加逻辑来闯闯,而不是到抓。 catch是为了处理异常。 – XtremeBaumer

+1

将try catch放在方法中,如果失败,再调用它。确保你在其中放置了一个计数器,否则你可能会陷入无限循环。 –

+0

如果加载第一个ID失败,为什么会出现异常?为什么方法的返回值只是表明加载不成功,例如因为id不存在?一般情况下,例外情况就是这样,即应该很少发生的预期或意外情况。如果由于某种原因预期手术失败,通常更好的做法是,例如,通过在进行调用之前检查前提条件或正确的返回值/状态。 – Thomas

回答

1

这不是一个好习惯。尝试使用catch块来处理错误/异常并记录错误信息。你可以有一个条件检查,看是否loadData1(id1);操作是成功的,这样在接下来的try-catch块可以loadData2(id2);

boolean loadSuccess=false; 
    try 
    { 
    loadSuccess=loadData1(id1); 
    } 
    catch(Exception e) 
    { 
    //error handling or logging code goes here 
    } 
    if(!loadSuccess) 
    { 
    try 
    { 
    loadData2(id2); 
    } 
    catch(Exception e) 
    { 
    //error handling or logging code goes here 
    } 
    } 
0

loadData1在引发异常时失败。但loadData2在那里可以处理它 - 只要 -

  1. loadData2函数在catch中的调用再次包装在一个有效的try-catch中。
  2. loadData2是已经执行了异常处理的函数。

如果满足其中一个条件,代码的其余部分应该继续执行。

相关问题