一、基础篇--1.1Java基础-Exception、Error、RuntimeException与一般异常有何异同

Throwable、Error、Exception、RuntimeException 关系如下类图所示:

Throwable:

Throwable类是java语言中所有错误或者异常的超类。它的两个子类是Error和Exception。

Error:

Error是Throwable的子类,用于指示合理的应用程序不应该试图捕获的严重问题。

一般都是不可控制的(unchecked),用来表示虚拟机内部错误或者底层资源的错误。

Exception:

可以是被控制的(checked)或者不可控制的(unchecked),一般是有认为导致的错误,应该在程序级别处理掉。

Exception类和所有子类(不包括RuntimeException类及其子类)都是检查异常(checked exceptions),它们需要在方法或构造方法的throws子句中声明,可以传递到外部。

RuntimeException:

RuntimeException是那些可能在 Java 虚拟机正常运行期间抛出的异常的超类。可能在执行方法期间抛出但未被捕获的RuntimeException的任何子类都无需在 throws子句中进行声明。RuntimeException是Exception的子类,是不可控制的(unchecked)。

常见的几种RuntimeException:

NullPointerException(空指针异常) 

IndexOutOfBoundsException(下标越界异常) 

IllegalArgumentException - 传递非法参数异常。

ClassCastException - 类型强制转换异常。

NumberFormatException (String转换为指定的数字类型异常) 

 ArithmeticException -(算术运算异常 如除数为0) 

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

SecurityException -(安全异常)

UnsupportedOperationException - 不支持的操作异常
 

原文地址:https://www.cnblogs.com/foreverYoungCoder/p/9896965.html