异常处理

异常的定义:运行期间出现的错误,而非编译时的语法错误

异常的体系结构:

异常处理_第1张图片
image.png

继承关系:

Object 类的直接子类Throwable描述了所有被虚拟机抛出的非正常状况。一般情况下很少用Throwable,而是使用它的两个子类Error、Exception。
1.Error类特指应用程序在运行期间发生的严重错误。如:虚拟机内存用尽、堆栈溢出等等。一般情况下这种错误都是灾难性的,所以没有必要使用异常处理机制处理Error。

  1. Exception类有几十个子类,描述了不同类型的异常,其中:
    以RuntimeException为代表的一些类,称为非检查性异常(unchecked
    Exception),
    以IOException为代表的一些类为检查性异常(checked Exception)。所谓的检查和非检查是指编译器 在编译时是否检查。如果代码中存在检查性异常,必须进行异常处理,否则编译时不能通过;而非检查性异常编译时不进行检查,到运行时才会显现。

非检查

异常处理_第2张图片
image.png

检查性

异常处理_第3张图片
image.png

处理机制

Java 中可用于处理异常的两种方式:
1.自行处理:可能引发异常的语句封入在 try 块内,而处理异常的相应语句则封入在 catch 块内。
2.回避异常:在方法声明中包含 throws 子句,通知潜在调用者,如果发生了异常,必须由调用者处理。


异常处理_第4张图片
image.png

异常处理_第5张图片
image.png

异常处理_第6张图片
image.png

异常处理_第7张图片
image.png

异常处理_第8张图片
image.png

你可能感兴趣的:(异常处理)