当前位置:网站首页>2022-07-29 第六小组 瞒春 学习笔记
2022-07-29 第六小组 瞒春 学习笔记
2022-08-02 14:21:00 【烫嘴的辛拉面】
学习目标:
- 掌握异常
学习内容:

异常处理
- 下标越界
- 空指针
- 类型转换异常
- 数字格式化
- 算术异常(数学异常)
编程界:
- 除数为0
- IO流(输入输出流)没有关闭
- 停电
当一个程序抛出异常时,抛异常后面的语句不再执行,类似于return的功能,终止方法的执行
异常的体系结构
最顶级的Throwable:错误,异常
Error:正常情况下,不太可能出现,绝大多数Error都会导致程序处于一个非正常的状态下, 基本上很难恢复。在外力的作用下,不考虑。Error是Throwable的子类,它是在Java 程序处理范围之外的
Exception:在Java语言中,将程序执行中发生的不正常的情况称之为异常。Exception也是 Throwable的子类。
编译期异常:写代码的时候,抛异常。如果编译器不解决,会编译不通过
运行期异常:RuntimeException,运行时会抛异常,平时没事
自定义异常:
Java中异常机制虽然很完善,但是结合实际业务还差很多。
年龄出现负数需要自定义异常、电商搜索乱码需要自定义异常
怎么自定义异常?
- 所有的异常必须是Throwable的子类(大材小用,没必要)
- 如果要定义一个编译期异常,需要继承Exception类
- 如果要定义一个运行期异常,需要继承RuntimeException类
在一个语句块中,如果使用throw抛出一个编译期异常,就必须在方法的声明处使用throws关键字来标记异常类型。
还有一种处理方式,直接try ... catch
我们为什么要手动抛异常?
因为要配合全局异常处理机制来解决问题
throw语句是可以当做方法的返回值的
在一个有返回值的方法中,如果有条件分支,一定要保证每种情况下都有返回值,哪怕是抛异常。
开发中,大部分情况下使用的都是运行期异常
异常链
一个异常被抛出去之后会继续被调用这个方法的方法捕获或抛出,异常会扩散
只要说解决异常、处理异常、捕获异常就是try ... catch
throws
如果一个方法没有捕获一个编译期异常,该方法必须使用throws来声明
(1)在方法里直接try ... catch解决

(2)在方法里抛异常给主函数,在主函数里try ... catch解决

规定:主方法里不允许继续往下抛异常
throws并不是真正的解决了异常,只是把异常抛给了下一级调用者。
面试题:throws和throw的区别
throws出现在方法的声明处,可以抛出多个异常(用逗号隔开)
finally关键字:
finally用来创建在try代码块后面执行的代码块
无论是否发生异常,finally代码块中的代码一定会执行。一班finally中的代码都是用来释放资源的。
Finally无论是否出现异常,都会执行
面试题01:try ... catch、finally执行顺序
finally永远是在最后执行的
如果在try ... catch语句中有return,
catch可以写多个异常(可以捕获多个异常)
顺序问题:先写小的,再写大的

重写的另一个规则:重写的方法不能抛出比被重写方法更大的异常类型
学习时间:
- 上午:7:30-12:00
- 下午:1:30-5:00
- 晚上:6:00-11:00
学习产出:
提示:这里统计学习计划的总量
例如:
- 对于异常有初步了解
- 除了自定义已经可以熟练运用
边栏推荐
猜你喜欢
随机推荐
怎么使用 smart_rtmpd 的纯 webrtc 功能?
filebeat的配置
网络运维系列:端口占用、端口开启检测
RTMP, RTSP, SRT 推流和拉流那些事
Golang基础教程
The DOM event type
DOM —— 事件对象
web渗透之sql注入
Principles of permutation entropy, fuzzy entropy, approximate entropy, sample entropy and approximate entropy implemented by MATLAB
【面经】被虐了之后,我翻烂了equals源码,总结如下
tab 替换空格
数据源,分层开发以及jsp标签总结及相关代码
【SVM回归预测】基于LibSVM实现多特征数据的预测
移除元素 - 双指针
[Fault Diagnosis] Weak Fault Diagnosis of Fan Bearing Based on PSO_VMD_MCKD Method
MYSQL5.7详细安装步骤
abstract和接口的基础知识
VLAN原理
MATLAB中dist与pdist、pdist2的区别与联系
时频分析之Wigner-Ville分布







