先看看这些常见的RuntimeException:
NullPointerException - 空指针引用异常
ClassCastException - 类型强制转换异常。
IllegalArgumentException - 传递非法参数异常。
ArithmeticException - 算术运算异常
ArrayStoreException - 向数组中存放与声明类型不兼容对象异常
IndexOutOfBoundsException - 下标越界异常
NegativeArraySizeException - 创建一个大小为负数的数组错误异常
NumberFormatException - 数字格式异常
SecurityException - 安全异常
UnsupportedOperationException - 不支持的操作异常
其实都是由于在写程序的自己引起的问题,编译的时候都是好的,但当程序走到报错的地方时,这些RuntimeException接踵而至。再说说为什么没必要去捕捉RuntimeException,就像上面所说的,引起这些运行时异常都是需要修改的,即使捕获了,问题还是存在。
其他的Exception呢,确实由于一些环境问题,不可避免的会出问题,所以就指明这些Exception,分门别类的处理他们。但这些Exception是与代码无关的。所以要么在开头throws这些Exception,或try/catch捕获这些异常做善后处理。
NullPointerException - 空指针引用异常
ClassCastException - 类型强制转换异常。
IllegalArgumentException - 传递非法参数异常。
ArithmeticException - 算术运算异常
ArrayStoreException - 向数组中存放与声明类型不兼容对象异常
IndexOutOfBoundsException - 下标越界异常
NegativeArraySizeException - 创建一个大小为负数的数组错误异常
NumberFormatException - 数字格式异常
SecurityException - 安全异常
UnsupportedOperationException - 不支持的操作异常
其实都是由于在写程序的自己引起的问题,编译的时候都是好的,但当程序走到报错的地方时,这些RuntimeException接踵而至。再说说为什么没必要去捕捉RuntimeException,就像上面所说的,引起这些运行时异常都是需要修改的,即使捕获了,问题还是存在。
其他的Exception呢,确实由于一些环境问题,不可避免的会出问题,所以就指明这些Exception,分门别类的处理他们。但这些Exception是与代码无关的。所以要么在开头throws这些Exception,或try/catch捕获这些异常做善后处理。