2011-11-14 72 views
2

我有下面的代碼片段,我想重構到一個更抽象的應用程序異常處理程序,但我想確保我已經把它儘可能整潔首先更好地處理數字格式異常在android

,關於如何提高這個代碼或使其更可重用

int id = -1; 
final StringBuilder errorMessage = new StringBuilder("Bad Input Value: "); 
try { 
     id = Integer.parseInt(edtId.getText().toString()); 
} catch (final NumberFormatException e) { 
     errorMessage.append("Failed to parse id " + e.getMessage()); 
} 

if (id < 0) { 
    errorToast(errorMessage.toString()); 
} else { 
    //go ahead an retreive values from database knowing the id has been parsed 
    //correctly to a positive int. 
} 
+2

如果用戶在文本字段中輸入'-1'會怎麼樣? – home

+0

它會小於零或我錯過了什麼? – Luke

+0

在這種情況下errorMessage.toString()將是一個空白字符串,沒有特別的幫助 – Luke

回答

2

爲什麼預分配ID的幻數有什麼建議?

try { 
    int id=Integer.parseInt(edtId.getText().toString()); 
    //go on as normal 
} catch (NumberFormatException e) { 
    //handle error 
} 
+0

不錯的想法,我認爲繼續正常意味着try塊將包含比我想要的更多的代碼,並且我不能在try塊之外使用id,如果我在它內部聲明它。 – Luke

+0

@Luke:理想情況下,您將'int'傳遞給另一個處理DB數據的方法。你也可以使用'java.lang.Integer'及其'null特性'。 – home

+0

好的歡呼,反饋。 – Luke