【动力节点 Java进阶学习笔记】第四章 异常处理

1、异常的基本概念:什么是异常、异常的作用、异常的存在形式

       什么是异常:程序执行过程中的不正常情况。
       java中异常的作用是:增强程序健壮性。
       java中异常以类和对象的形式存在。异常的发生就是new异常对象

2、异常的继承结构和分类

       Object–>Throwable(可抛出的)–>Error(不可处理,直接退出JVM)
                                                            -->Exception(可处理的)
       Exception下有两个分支:
              Exception的直接子类:编译时异常
              RuntimeException:运行时异常

       异常的继承结构图:
在这里插入图片描述

3、编译时异常和运行时异常的定义和区别

       编译时异常和运行时异常,都是发生在运行阶段。编译阶段异常是不会发生的。
       编译时异常一般发生的概率比较高,必须在编译(编写)阶段预先处理,如果不处理编译器报错
       运行时异常一般发生的概率比较低,在编写程序阶段程序员可以预先处理,也可以不管

4、异常的捕获和处理

       Java语言中对异常的处理包括两种方式:上抛和捕捉
              (1)在方法声明的位置上,使用throws关键字,抛给上一级。
              (2)使用try…catch语句进行异常的捕捉:catch (ArithmeticException e)
       一般不建议在main方法上使用throws,因为这个异常如果真正的发生了,一定会抛给JVM,JVM只有终止。
       可以上抛异常的父类,也可以上抛多个异常(逗号分隔)
       catch可以写多个,JDK8 catch支持|来捕捉多个异常:catch(FileNotFoundException | ArithmeticException | NullPointerException e) {}
       catch写多个的时候,从上到下,必须遵守从小到大。

5、异常对象两个非常重要的方法:getMessage()和printStackTrace()

       获取异常简单的描述信息:getMessage()
       打印异常追踪的堆栈信息:printStackTrace()
       可用于catch语句中打印异常相关信息,并且不会因为异常影响程序执行

6、finally语句的特性和使用

  • 在finally子句中的代码是最后执行的,并且是一定会执行
  • try和finally,没有catch可以吗?可以。try不能单独使用。try finally可以联合使用。
  • 无论try里执行了return语句、break语句、还是continue语句,finally语句块还会继续执行,我们可以调用System.exit()来终止它
  • 如果try语句里有return,那么代码的行为如下:
           1.如果有返回值,就把返回值保存到局部变量中
           2.执行jsr指令跳到finally语句里执行
           3.执行完finally语句后,返回之前保存在局部变量表里的值

7、final finally finalize有什么区别?

       final 关键字
               final修饰的类无法继承
               final修饰的方法无法覆盖
              final修饰的变量不能重新赋值。

       finally 关键字
              和try一起联合使用。
              finally语句块中的代码是必须执行的。

       finalize 标识符
               是一个Object类中的方法名。
               这个方法是由垃圾回收器GC负责调用的。

8、如何自定义异常和使用

       第一步:编写一个类继承Exception或者RuntimeException.
       第二步:提供两个构造方法,一个无参数的(方法体为空),一个带有String参数的(方法体为super();)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值