开发中如何避免runtime 异常
- 如何在开发中避免bug,示例是java代码
空指针异常
java.lang.NullPointerException:空指针
产生的原因:使用对象(字段/方法)值为null
代码示例:
避免空指针代码实例:
equals避免空指针:
数组下标越界
ArrayIndexOutOfBoundsException :数组下标越界
产生的原因:使用超出数组下标范围的下标
错误代码实例:
逻辑处理:
数学运算异常
java.lang.ArithmeticException 数学运算异常
产生的原因:计算过程中分母为零
错误代码实例:
异常处理代码:
数字格式异常
java.lang.NumberFormatException :数字格式异常
产生原因:使用Integer类型接收String或者把String转成Integer
错误代码实例:
正确实例:
异常处理思路:
不要捕获 Java 类库中定义的继承自 RuntimeException 的运行时异常类,如: IndexOutOfBoundsException / NullPointerException,这类异常由程序员预检查 来规避,保证程序健壮性
正例:
if(obj != null) {...}
反例:
try { obj.method()
} catch(
NullPointerException e){
...}
对大段代码进行 try-catch,这是不负责任的表现。catch 时请分清稳定代码和非稳 定代码,稳定代码指的是无论如何不会出错的代码。对于非稳定代码的 catch 尽可能进行区分 异常类型,再做对应的异常处理。
有 try 块放到了事务代码中,catch 异常后,如果需要回滚事务,一定要注意手动回滚事务
finally 块必须对资源对象、流对象进行关闭,有异常也要做 try-catch