2012-09-29 53 views
0

我使用Android的HttpClient的連接到域如下:與自定義錯誤信息,請更換異常日誌記錄

try { 
      URL url = new URL("example.com"); 
      HttpURLConnection conn = (HttpURLConnection)url.openConnection(); 
      read(conn.getInputStream()); 
     } catch (Exception e) { 
      e.printStackTrace(); 
     } 

現在是好的,如果我刪除此行:

e.printStackTrace(); 

而更換它與此:

Toast toast = Toast.makeText(getApplicationContext(), "Could not connect to domain.", Toast.LENGTH_LONG); 
toast.show(); 

或者我必須做一些'e'變量?在這種情況下,它將是:

catch (Exception e) { 
    e.printStackTrace(); 
    Toast toast = Toast.makeText(getApplicationContext(), "Could not connect to domain.", Toast.LENGTH_LONG); 
    toast.show(); 
     } 

如果我做e.printStackTrace(),它打印到哪裏?

回答

1

我建議只捕獲拋出的異常類型(我認爲在這種情況下IOException)。其他例外情況可能與完全無關的問題有關。

是的,可以用烤麪包替換printStackTrace。獎勵提示:只需撥打

Toast.makeText(getApplicationContext(), "Could not connect to domain.", Toast.LENGTH_LONG).show(); 

您可以在一行中完成所有操作。 :)

e.printStackTrace()將打印到標準logcat跟蹤,您可以使用adb logcat命令(adb是Android SDK的一部分)查看該跟蹤。

+0

Thanx,所以'e.printstacktrace()'僅用於開發/日誌記錄的目的,沒有意義在發佈的應用程序中?和thanx的吐司快捷鍵:) – Anomaly

+0

它只用於開發/日誌記錄的目的,但我仍然認爲有一個點在發佈的應用程序。對於網絡錯誤,這可能會過於嘈雜,但打印異常很有幫助,因此當客戶報告問題時,您可以要求logcat輸出或錯誤報告並從中進行調試。 –

+0

啊,也是如此。非常感謝。 – Anomaly