问题代码如下
if (Integer.parseInt(total) <= 30) {
}
问题一:
错误信息:
04-20 09:58:31.017: E/AndroidRuntime(12436): java.lang.NumberFormatException: Invalid int: "null"
04-20 09:58:31.017: E/AndroidRuntime(12436): at java.lang.Integer.invalidInt(Integer.java:138)
04-20 09:58:31.017: E/AndroidRuntime(12436): at java.lang.Integer.parseInt(Integer.java:358)
04-20 09:58:31.017: E/AndroidRuntime(12436): at java.lang.Integer.parseInt(Integer.java:334)
问题分析:
因为在上面代码中total为null,所以会报以上的异常。
问题二:
错误信息:
04-20 10:04:33.843: E/AndroidRuntime(17079): java.lang.NumberFormatException: Invalid int: ""
04-20 10:04:33.843: E/AndroidRuntime(17079): at java.lang.Integer.invalidInt(Integer.java:138)
04-20 10:04:33.843: E/AndroidRuntime(17079): at java.lang.Integer.parseInt(Integer.java:358)
04-20 10:04:33.843: E/AndroidRuntime(17079): at java.lang.Integer.parseInt(Integer.java:334)
问题分析:
因为在上面代码中total为“”,所以会报以上的异常。
解决方法:
在使用时做个判断即可避免出现此异常。
if (!TextUtils.isEmpty(total) && TextUtilInteger.parseInt(total) <= 30) {
}
本文分析了使用Integer.parseInt()可能出现的两个问题:当传入参数为null和空字符串时,会导致运行异常。针对这些问题,提出了在使用前进行判断的解决策略,以避免异常发生。
2万+

被折叠的 条评论
为什么被折叠?



