2011-11-14 6 views
2

次のコードスニペットは、より抽象的なアプリケーション例外ハンドラにリファクタリングすることを考えていますが、できるだけ最初に整理しておきたいと思います。androidの数値書式例外の処理を改善しました

このコードを改善したり、それをよりresuableにする方法上の任意の提案

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

@ルーク:理想的には、あなたはDBのものを扱う別のメソッドに 'int'を渡します。 'java.lang.Integer'とその 'ヌル機能'を使って作業することもできます。 – home

+0

フィードバックのために歓声をあげる。 – Luke

関連する問題