2022-7-29 第八组wly 异常处理

这篇博客详细介绍了Java异常处理的各个方面,包括异常的概念、异常的继承体系(Error、Exception、RuntimeException及其子类)、编译期异常和运行期异常的区分、异常处理机制(try-catch、finally、throws、throw的区别)以及自定义异常和异常链。内容涵盖了异常处理的关键知识点和实战应用,适合Java开发者学习。
摘要由CSDN通过智能技术生成

今日重点:

目录

一、异常处理 

1、异常处理的概念

2、 异常的继承体系结构

(1)Error

(2)Exception:

(3)RuntimeException及其子类:

(4)除了RuntimeException之外所有的异常:

3、编译期异常和运行期异常

​编辑

(1)编译期异常:

(2)运行期异常:

(3)其他会出错的情况

 4、异常处理机制

(1)异常默认处理机制

 (2)根据已知的错误情况进行相对应的处理

(3)捕获异常:try-catch语句

(4)多重捕获块

(5)捕获异常:try-catch-finally语句

(6)抛出异常:throws和throw

(7)throws 关键字和 throw 关键字在使用上的几点区别如下:

(8)final, finally, finalize 的区别

5、自定义异常

6、异常链 

课上案例:

一、异常处理 

1、异常处理的概念

异常是代码在编译或者执行的过程中可能出现的错误。学习异常处理的目的是为了避免异常的出现,同时处理可能出现的异常让代码更加完善实用。异常是程序中的一些错误,但并不是所有的错误都是异常,并且错误有时候是可以避免的。

异常发生的原因有很多,通常包含以下几大类:

  • 用户输入了非法数据。
  • 要打开的文件不存在。
  • 网络通信时连接中断,或者JVM内存溢出。

这些异常有的是因为用户错误引起,有的是程序错误引起的,还有其它一些是因为物理错误引起的。-

2、 异常的继承体系结构

  

(1)Error

①系统级别问题,JVM退出等,代码无法控制。代码正常情况下,不太可能出现的。绝大多数Error都会导致程序处于非正常的状态下,很难恢复,外力作用下,不考虑。Error是Throwable的子类,它是在Java程序处理范围1之外的。

(2)Exception:

Java语言中,将程序执行中发生的不正常的情况称之为异常,java.lang包下,成为异常类,它表示程序本身可以处理的问题。

(3)RuntimeException及其子类:

运行时异常,编译阶段不会报错。比如空指针异常,数组索引越界异常

(4)除了RuntimeException之外所有的异常:

编译时异常,编译期必须处理的,否则程序不能通过编译。比如日期格式化异常

3、编译期异常和运行期异常

(1)编译期异常:

没有继承RuntimeException的异常,继承自Exception的异常或者其子类。编译阶段就会报错。写代码的时候,抛异常。就算代码没有出错,但是结果就会提示有异常。是Java系统担心程序员的技术不行,在编译阶段就爆出一 个个错误, 目的在 于善意提醒,提醒程序员这里很可能出错,请检查并注意不要出bug,编译时异常是可遇不可求。如果编译器不解决,会编译不通过,会一直报错。

  

(2)运行期异常:

继承RuntimeException的异常或其子类,编译阶段不报错,运行时可能会抛出异常。运行期异常一般是程序员业务没有考虑好或者是编程逻辑不严谨引起的程序错误。

运行时异常示例
●数组索引越界异常: ArrayIndexOutOfBoundsException
●空指针异常 : NullPointerException,直接输出没有问题,但是调用空指针的变量的功能就会报错。
●数学操作异常: ArithmeticException
●类型转换异常: ClassCastException
●数字转换异常 : NumberFormatException

(3)其他会出错的情况

①除数为0

②IO流,没有关闭

电脑会容易蓝屏

③停电

数据没来得及保存就停电就会流失

 4、异常处理机制

当一个程序抛出异常(发生错误)时,抛出异常后面的语句不再执行,类似于return的功能

(1)异常默认处理机制

①默认会在出现异常的代码那里自

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值