2011-11-14 69 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