我正在開發一個Android 3.1及以上的應用程序,但這個問題並不是針對特定環境。我有三個層:活動(表示),模型(表示數據庫表的對象)和數據(訪問SQLite數據庫的類)。如何處理數據庫異常:軟件設計
我所有的數據庫方法是像這樣的:
public void insertUserAnswers(ArrayList<UserAnswer> answers)
{
try
{
if ((db == null) || (!db.isOpen()))
this.open();
}
catch (Exception e) {
e.printStackTrace();
}
finally
{
this.close();
}
}
正如你可以看到我抓住每一個例外,我不通知任何人談起它,因爲(這是我的問題)我不知道如何去做。
如何通知它是一個sql命令錯誤?有沒有什麼模式可以做到這一點?
我想我可以返回一個值來指示是否緩存異常。
謝謝您的回答。我有一個特定的問題,我不知道如何處理:我連接到Web服務,檢索一些數據,然後我將本地存儲。如果這些數據被破壞,將會導致異常。這不是一個軟件問題,我該如何處理?謝謝。 – VansFannel
如果數據可能被破壞(=您希望錯誤不是由錯誤代碼引起的),那麼請確保捕獲適當的異常(並非全部)並找到處理該情況的方法。例如。檢查你檢索的數據是否有效,以防萬一它沒有重試(並且可能會阻止你以這種方式得到的異常)。如果自動錯誤處理是不可能的,那麼通知用戶它可以在以後再次嘗試,如果這是可能的話。讓它崩潰的方法只適用於你應該修復的錯誤代碼,而不是你的代碼必須處理的網絡超時/傳輸錯誤等。 – zapl