异常的总父类是Throwable,Throwable下又两个子类,一个是Error一个是Exception
此时的结构:
Throwable
---Error
---Exception
错误(Error)
:是程序无法处理的错误,表示运行应用程序中较严重问题。这些错误是不可查的,因为它们在应用程序的控制和处理能力之 外,而且绝大多数是程序运行时不允许出现的状况。异常(Exception)
:是程序本身可以处理的异常,分为可查异常和不可查异常,还有一种分类是运行时异常和编译异常。
可查异常: 除了RuntimeException
及其子类以外,其他的Exception类及其子类都属于可查异常。这种异常的特点是Java编译器会检查它,也就是说,当程序中可能出现这类异常,要么用try-catch语句捕获它,要么用throws子句声明抛出它,否则编译不会通过。
不可查异常:包括运行时异常(RuntimeException)
和错误(Error)
.
运行时异常表示无法让程序恢复运行的异常,导致这种异常的原因通常是由于执行了错误操作。一旦出现了错误操作,建议终止程序并仔细的debug,因此Java编译器不检查这种异常。
运行时异常:RuntimeException类或者其子类的异常,一般是代码中存在bug,比如ArrayIndexOutOfBoundsException - 数组下标越界异常
NullPointerException - 空指针异常
编译异常:除了运行时异常以外的异常都属于编译异常,比如IOException。
这个时候的结构:
Throwable
---Error
---Exception
---可查异常
---除了运行时异常及其子类
---不可查异常
---运行时异常(RuntimeException)
---错误(Error)
网友评论