欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

java-异常(笔记)

程序员文章站 2022-03-10 19:25:26
Throwable:Throwable类是所有错误和异常的祖宗类Error:出现Error的情况一般来说Java程序是无能为力的。异常类:检查异常:指的是编译期间就必须处理的,否则程序不能通过编译,更不能正常运行。RuntimeException:RuntimeException及其子类是非受检异常,编译期间是不需要检查的,出现问题需要回来修改代码。例子:arr[3]编译时候没有异常,但是溢出需要回来改代码。小结:......

一.Throwable:

Throwable类是所有错误和异常的祖宗类
java-异常(笔记)

Error:出现Error的情况一般来说Java程序是无能为力的。

java-异常(笔记)
异常类:

java-异常(笔记)
检查异常:指的是编译期间就必须处理的,否则程序不能通过编译,更不能正常运行。

RuntimeException:
java-异常(笔记)
RuntimeException及其子类是非受检异常,编译期间是不需要检查的,出现问题需要回来修改代码。

例子:

java-异常(笔记)
arr[3]编译时候没有异常,但是溢出需要回来改代码。

小结:

java-异常(笔记)

二.JVM的默认处理方案

java-异常(笔记)

例子:

java-异常(笔记)

只输出了开始和异常信息,没有输出结束

三.异常处理

为什么学习自己处理异常: 因为java虚拟机的默认方案会让程序在出现问题的地方直接结束,而在实际开发中,程序某一个地方出问题了不应该影响后续的执行。

java-异常(笔记)

(1)try…catch…

java-异常(笔记)

四.Throwable的成员方法

java-异常(笔记)

(1)public void printStackTrace()

java-异常(笔记)
程序会在出现异常的地方new一个异常类的对象,然后被Java的运行时系统拿去和catch里的匹配,匹配上了就把new的对象赋值给e,那么e就是一个对象了,对象可以调方法。

返回异常的原因异常的类名以及位置信息。

(2)public String getMessage()

java-异常(笔记)
返回出现异常的原因
底层:
java-异常(笔记)
java-异常(笔记)

(3)public String toString()

java-异常(笔记)

返回的是异常原因以及异常类名。

五.编译时异常和运行时异常

java-异常(笔记)

(1)编译时异常

java-异常(笔记)
编译时异常是可能出现异常而不是一定出现异常,可以用try…catch解决

java-异常(笔记)

六.throws处理异常

java-异常(笔记)

例子(运行时异常):

java-异常(笔记)
只输出了开始没有输出结束,说明throws并不是真正的处理异常,他仅仅是把异常抛出,如果想让程序继续往下执行,还得用try…catch…

例子(编译时异常):

java-异常(笔记)
先把异常抛出去但是要是用这个方法的话还是要进行处理。
java-异常(笔记)
java-异常(笔记)

总结:

java-异常(笔记)

七.自定义异常

为什么自定义异常:虽然java提供很多异常类供我们使用,但是在实际开发中这些远远不够使用,比如说得分为0到一百分,java是并不知道的。

让我们的类继承自Exception或者继承自RuntimeException,那么我们的类就成为异常体系的一员

java-异常(笔记)
先创建一个无参构造方法,再创建一个带参构造方法,super将message返回给他的父类
跟进到父类查看:
java-异常(笔记)

再跟进:
java-异常(笔记)
detailMessage是Throwable中的一个成员变量,可以用 printStackTrace()这个方法获取到。
java-异常(笔记)
throw可以在方法体内部抛出异常,以为是自定义的所以要手动去抛。
java-异常(笔记)
因为自定义的异常是一个编译时异常,所以还要用throws抛出异常
java-异常(笔记)
否则无法通过编译
java-异常(笔记)

本文地址:https://blog.csdn.net/weixin_49053303/article/details/112217578

相关标签: java