异常
概述
1.背景
程序会面对很复杂的情况运行时出现的错误称为异常:用户输入可能出错、程序所在的操作系统可能出错,网络不通等,异常是一种对象。要注意观察错误的行号和异常的名称。
2.概念
Java异常是一种用于处理程序中错误的机制。JVM生成一个Exception对象来通知程序。
3.为什么要使用异常
如果不用异常,可以写很多if else。但是有很多缺点:无法穷举所有的错误情况、错误处理代码与业务代码混乱、影响程序可读性、增加维护难度。
4.怎样使用异常
5.异常处理的基本流程
Java异常的分类
分类1
分类2
由此可知,RuntimeException都是unchecked。
对于checked异常可以throw可以try catch处理。
声明抛出异常
1.功能
可以告诉编译器该方法有可能发生的错误
2.什么时候使用
checked没处理的时候
①调用了一个抛出checked异常的方法,方法中没有处理异常时
如:
FileInputStream
构造方法可能抛出checked类异常FileNotFoundException
,而mian方法里又没有处理这个异常,则需要声明抛出异常,如下:
当然,如果方法中处理了异常,就不用声明了,如下:
②程序运行时发现错误,利用throw抛出checked异常而不处理异常时
③若一个方法抛出多个异常,每个异常用“,”分开。
3.总结
异常的捕获和处理
1.基本结构
调用catch块处理异常时,会将异常赋值给形参,通过形参访问异常对象的信息。
而finally子句作用如下,可以嵌套try-catch。
2.常用处理异常方法
3.异常跟踪栈
若无处理会层层抛出
4.处理异常的原则
1.处理方法能够处理的异常。
2.不能处理的异常要抛出,要在方法定义中throws
异常,而且可以在代码中手工throw
异常
3.不能把父类异常catch写在子类异常catch前面,否则后面子类异常就没用了。
自定义异常
方法重写中的异常处理
复习方法重写的要求
举例
本章总结
上课补充的一些无关知识点
用Collection.shuffle()随机打乱一个顺序数组
@overried
https://blog.csdn.net/inter18099/article/details/8067336
https://www.cnblogs.com/ttzz/p/8455325.html