Exception与RuntimeException有什么异同

2016-10-26  本文已影响131人  ambitioner

这个问题是我面试的时候遇到的一个题目, 较真的说题目不对。应该是RuntimeException和非RuntimeException的区别。

因为Exception是RuntimeException的父类。如果是非RuntimeException,如果在定义方法的时候抛出异常,在调用该方法

的地方必须使用try{}catch{}来捕获异常。但是对于RuntimeException来说不需要。jvm会对该异常进行处理,但是会中断程序

运行。所以建议也对RuntimeException进行try catch。

如果是自定义异常,应该继承Exception,因为你肯定想自己捕捉进行相应的处理,而不是交给jvm处理。

常见的RuntimeException:

NullPointerException - 空指针引用异常

ClassCastException - 类型强制转换异常。

IllegalArgumentException - 传递非法参数异常。

ArithmeticException - 算术运算异常

ArrayStoreException - 向数组中存放与声明类型不兼容对象异常

IndexOutOfBoundsException - 下标越界异常

NegativeArraySizeException - 创建一个大小为负数的数组错误异常

NumberFormatException - 数字格式异常

SecurityException - 安全异常

UnsupportedOperationException - 不支持的操作异常

上一篇下一篇

猜你喜欢

热点阅读