Java中的异常知识梳理

一、异常

概念:在运行过程中,出现不正常的情况,导致程序终止。

Java中的异常继承结构

Throwable

》Error:表示程序不能处理的错误

》Exception:表示异常,程序中要进行处理

二、java处理异常的机制

java中通过try、catch、finally、throw、throws5个关键字来进行异常的处理

(1)try块

、表示用来执行可能会产生异常的代码,try不能单独使用,必须结合catch或者finally来使用

、一个try块后面可以跟多个catch块,来处理不同的异常

(2)catch块

、捕获异常,java中通过catch块捕获不同类型的异常,当程序中出现的异常类型和catch块中捕获的异常类型相同的是,则会进入catch块,执行catch块中的代码

、捕获异常的时候,先捕获子类类型的异常,最后捕获父类异常

(3)finally块

、无论是否出现异常,都会执行的代码块,通常释放资源的代码放在finally执行

、如果有return,finally会在return执行之前执行

(4)throw关键字

、throw用来抛出异常,当程序不能处理的异常,需要抛出,抛出后交给调用者继续处理。

、throw抛出的是检查异常,则方法必须显式的声明抛出的异常类型。

、抛出的是运行时异常,则可以声明也可以不用显式的声明

(5)throws关键字

、throws声明异常、用来声明方法中 抛出的异常类型

三、检查异常与运行时异常的区别

1、检查异常

(1)java中从Exception继承的子类,都是检查异常

(2)调用的方法,如果抛出的是检查异常,则调用的时候,必须进行处理(显示的try catch或者继续抛出)

(3)抛出的是检查异常,方法必须显式的声明

2、运行时异常

(1)java中从RuntimeException继承的子类都是运行时异常

(2)如果方法抛出的是运行时异常,可以声明也可以不用显式的声明

(3)调用的方法如果抛出的是运行时异常,则可以不用显式的处理

四、自定义异常

java中不可能对所有的异常情况都考虑到,所以,在实际开发中,我们可以根据需要自定义异常

1)步骤

、extends Exception 或者 RuntimeException

、继承RuntimeException更加灵活,不会污染接口

、提供构造方法,实现对父类构造方法的调用

、super()

五、Java7的多异常捕获

、在java7中,catch代码块得到了升级,用以在单个catch块中处理多个异常

、如果要捕获多个异常并且它们包含相似的代码,使用这一特性将会减少代码重复度

  1. try {

  2. int a = 2/0;

  3. }catch(NullPointerException | ArithmeticException e) {

  4. e.printStackTrace();

  5. System.out.println("出错了");

  6. }

    六、常见异常

    ![image-20220114161344480](https://woniumd.oss-cn-hangzhou.aliyuncs.com/java/hanling/20220114161350.png)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值