Java异常

Java异常_第1张图片

异常概念:阻止当前方法或作用域继续执行的,称之为异常。

异常类Throwable,有两个子类Error类和Exception类

Error类是指系统错误,是很严重的异常,会导致程序无法处理,从而终结;

Error类包括两类:虚拟机错误和线程死锁

Java异常_第2张图片
Error异常类

Exception类为编译、环境、用户操作输入出现问题;

Java异常_第3张图片
Exception异常类

Exception异常类主要包括“非检查异常”和“检查异常

非检查异常RuntimeException(运行时异常),由JVM自动抛出,并自动捕获;该异常的出现一般说明了程序的代码出现了问题,应该从逻辑上改进代码;

检查异常(CheckException):除RuntimeException异常以外的异常,需要手动地添加捕获以及处理语句;


Java异常_第4张图片
非检查异常种类
Java异常_第5张图片
检查异常种类

处理异常


Java异常_第6张图片
处理异常基本语法

当try语句块中的代码确实发生异常,则会导致程序的终止执行;程序的控制权将被移交给catch块中的异常处理程序;

catch块中的代码可以是发出一些警告来提示用户或者编程人员去检查一下配置或者网络连接的问题;也可以在该语句块中进行错误日志的记录等操作;

Java异常_第7张图片
多个catch语句块问题

当try语句块中有很多种类型的异常,可以在try语句块后面用多个catch语句块来捕获多种类型的异常,并进行相应的处理;

对于多重catch语句块的顺序问题:先小后大,先子类后父类;因为存在就近匹配原则,而子类继承于父类,针对于父类的异常处理程序,对于子类也是适用的;

异常捕获处理完成之后的finally语句

Java异常_第8张图片
finally语句中表示最终将要执行的一些代码

finally语句块中通常是一些最终将要执行的代码,包括“关闭连接”、“关闭打开的程序”等操作;

Java异常的抛出

throw位于方法体内部,表明具体的抛出异常的动作

Java异常_第9张图片
异常抛出的语法结构

Java中的所有异常类


Java异常_第10张图片

Java中还可以自定义异常

继承的异常类型为该自定义异常的意思相近的异常类(Exception类的子类)或者异常基类Exception

Java异常_第11张图片

Java异常链

可以将捕获的异常包装成一个新的异常,在新的异常里添加对原始异常的引用,再把这个新异常抛出,从而像一个链式反应一样,一个导致另一个,即异常链。

Java异常_第12张图片

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