在這種情況下:在do ... while()評估中處理try/catch異常的最佳方法?
Cursor cursor = dbHandler.fetchEvents();
boolean someBool = true;
do {
someStuff();
variables = things;
otherStuff();
} while (someBool && cursor.moveToNext());
有一種可能性,即cursor.moveToNext()可能拋出一些例外的,特別是如果我的數據庫被意外關閉,而我用光標的工作。
處理while()評估中引發的任何可能異常的最佳方法是什麼?目前,整個事情只是崩潰。我寧願避免這種情況。編譯器不喜歡我直接將try/catch添加到while()eval中的努力,而且它很醜陋。我想我需要創建,這是否一種新的方法:
private boolean moveToNext(cursor) {
boolean result = false;
try {
result = cursor.moveToNext();
} catch (Exception e) {
... error handling ...
}
return result;
}
,然後改變我的eval環路:
Cursor cursor = dbHandler.fetchEvents();
boolean someBool = true;
do {
someStuff();
variables = things;
otherStuff();
} while (someBool && moveToNext(cursor));
沒有人有任何其他建議?如果是這樣,我很樂意聽到他們。謝謝!
您提出的解決方案正是我所推薦的解決方案。 – tnw
我建議將'return result'移入try或finally。如果你使用try/catch,try/catch/finally應該是你的頂級範圍,try塊中的業務邏輯,catch塊中的錯誤處理以及任何你想發生的事情,而不管是否存在finally塊中的錯誤。 – Bardicer