我有兩個id(id1,id2),如果第一次失敗,我想從服務器獲取數據。如果在java中首次失敗,執行服務器調用
try
{
loadData1(id1);
}
catch(Exception e)
{
loadData2(id2);
}
這是一個很好的做法還是有沒有其他的選擇呢?
我有兩個id(id1,id2),如果第一次失敗,我想從服務器獲取數據。如果在java中首次失敗,執行服務器調用
try
{
loadData1(id1);
}
catch(Exception e)
{
loadData2(id2);
}
這是一個很好的做法還是有沒有其他的選擇呢?
這不是一個好習慣。嘗試使用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
}
}
loadData1在引發異常時失敗。但loadData2在那裏可以處理它 - 只要 -
如果滿足其中一個條件,代碼的其餘部分應該繼續執行。
此舉將它添加邏輯來闖闖,而不是到抓。 catch是爲了處理異常。 – XtremeBaumer
將try catch放在方法中,如果失敗,再調用它。確保你在其中放置了一個計數器,否則你可能會陷入無限循環。 –
如果加載第一個ID失敗,爲什麼會出現異常?爲什麼方法的返回值只是表明加載不成功,例如因爲id不存在?一般情況下,例外情況就是這樣,即應該很少發生的預期或意外情況。如果由於某種原因預期手術失敗,通常更好的做法是,例如,通過在進行調用之前檢查前提條件或正確的返回值/狀態。 – Thomas