2014-03-04 78 views
1

我正在解析JSON結果,但有時它的格式不正確,例如如果該網站已關閉。當我嘗試解析在我的應用程序,我得到一個JSONException(因爲它是有效的JSON)。然後,我想打印一條消息給用戶,說稍後再試,並且沒有應用程序崩潰,但我沒有多少運氣。從JSONException中恢復

Here它說

雖然這是一個檢查的異常,這是很少恢復。大多數 呼叫者應該簡單地在一個未經檢查的異常 和重新拋出包裝這個異常:

如果我能正確讀那麼我將無法打印的郵件給用戶,並從崩潰保持應用 。如果這是正確的,那麼可以做幾次(在什麼條件下)?

+0

捕獲異常,並完成剩下的優雅 –

+0

您可以沒有任何問題 –

+0

抓住它「如果網站下跌」 ......你應該已經注意到了,你之前* *的方式必須使用JSON解析器。 –

回答

0

您的引用僅僅意味着您必須通過使用try/catch或向方法簽名添加「throws JSONException」來檢查異常,即使您必須檢查它,通常也不能修復它,所以只需拋出一個RuntimeException或其他東西。

儘管如此,您絕對可以優雅地處理它。這裏的東西讓你開始:

try { 
    JSONObject obj = new JSONObject(); 
    // crazy stuff that might throw a JSONException 
} catch (JSONException e) { 

    AlertDialog.Builder alert = new AlertDialog.Builder(context) 
     .setTitle(R.string.dialog_title_error) 
     .setMessage(R.string.dialog_message_error) 
     .setPositiveButton(android.R.string.ok, null); 
    alert.show(); 

}