Javase异常相关知识点

异常:程序执行过程中发生的不正常行为。重点为:程序执行过程中发生的,导致程序无法继续执行下去。编译时产生的语法错误不叫异常,因为它还没运行,可以直接解决。

异常的错误堆栈会直接提示异常产生的原因以及出错的代码位置。

程序开发中最常见的三大异常为:越界异常,NPE异常(空指针),类型转换异常(两个毫无关系的类进行转型)。

在Java中,异常也是类。其实程序抛出的异常就是一个异常对象,是JVM产生并返回程序。

一、异常的分类

异常体系核心的两个父类:

Error:JVM无法解决的重大问题,程序无法解决只能退出。

Exceprtion:异常处理后可以通过异常的处理流程来解决此类问题,使得程序继续执行。

所以异常处理流程只针对Exception类

另外异常还有另一种分类:

受查异常:又称编译时异常,在程序编译的时候必须显示处理的异常。个人理解为与编译阶段的语法错误差不多,不显示处理就运行不了。包括Exception内的IOEException  SQLException等。

非受查异常:又称运行时异常,程序编译时没有产生任何错误,但是在运行时发生的异常。包括Erroe类与Exception类里的RuntimeException类。

二、异常的处理流程

Java对异常的处理方式为先执行再处理

处理异常的五个关键字:try catch finally throw throws

1 异常的捕获并处理: try - catch - finally 代码块

 一些注意的地方:

a 没有异常产生不走catch语句

b 异常产生被捕获到,则try异常后的语句不执行,但一异常体系之后的代码可以执行

c 可以使用多个catch来捕获可能出现的不同异常

d 不确定具体异常时,可以使用异常的父类来捕获异常

e 若catch分支存在继承关系则必须将子类写在父类之前

f 多个catch分支只会走一个分支,其他的不执行。

g 无论是否产生异常 finally代码块的内容必定会被执行,除非整个JVM退出(例如 System.exit)

2 出现异常不处理,直接抛回给调用者处理:throw 与 throws

throws:用在方法声明上,明确表示该方法可能产生某些异常,但不处理,抛回给调用者处理。

关键点:
1.throws关键字在方法列表之后进行定义
2.throws可以抛出多个异常,多个异常使用"∵"分隔,若有父子关系,只需要抛出父类异常即可!
3.throws抛出的必须是Exception以及其子类

throw:用在方法内部,程序员在出现异常时,自己产生异常对象并向外抛出(原本异常由JVM产生,现在由程序员自己产生)一般配合自定义异常使用。     

          

 3 自定义异常

需要拓展的是非受查异常继承RuntimeException类
若需要拓展的是受查异常继承Exception类

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

花落尽舞

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值