Exception与RuntimeException有什么异同

这个问题是我面试的时候遇到的一个题目, 较真的说题目不对。应该是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 - 不支持的操作异常

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容