目录
4、ArrayIndexOutOfBoundsException
7、ClassNotFoundException
8、IllegalArgumentException
9、NumberFormatException
3、Exception 是所有异常的根,下面又分为很多种异常情况
一、定义:
1、异常:
异常指程序执行中可能出现的不正常现象,异常不是错误(表面上可以运行,后台会报错)
2、报错:
是我们无法解决的问题,eg: 断电
注:异常会提前结束程序,从出现异常的地方开始,后面的程序不会执行
二、异常处理:
1、使用 try-catch 自己处理异常:
( try-catch 自己处理有问题自己直接解决)
try{
可能出现异常的程序段
}catch(Excption e){
对异常的处理程序
}
(1) try 块中放着可能出现异常的程序段,当出现异常时,异常会被 catch 块捕获,并做出处理;如果没有出现异常,则 catch 块不执行
(2)catch 块可以有多个,用来处理各种异常情况
(3)当有子异常和父异常时,子异常的 catch 写在父异常的 catch 前
InputMismatchException 是子异常 Excption 是父异常
(4)从出现异常的地方到 catch 之间的代码不会执行(从异常语句往后都不执行)
2、用 throw 和 throws 抛出异常
(抛出异常,但是不处理,最后处理还是用 try-catch )
(1) 用 throws 声明异常,表示可能会抛出哪些异常
(2)用 throw 抛出异常信息,抛出给了调用者
(3) 调用者就是调用该方法的对象,同理,调用者也可以继续抛出异常,但是最终一定要对异常进行处理。
(4)不推荐使用 throw 和 throws 处理异常,更推荐使用 try-catch 自己处理异常
三、Finally、return、exit() 的作用
1、finally
表示最终无论如何都会执行的块,通常放在 try-catch最后执行
2、Return
表示结束方法并返回结果,但是 final 块还是会执行,通常放在 try-catch的try{}中
3、exit()
表示退出程序,后面的程序将不再执,即使后面有 return 和 finally , 都不会执行
优先级:
System.exit(0) > finally > return
四、常见的异常:
1、Exception
异常层次结构的根类(父类,所有异常的集合)
2、InputMismatchException
输入不匹配异常
3、ArithmeticException
算术异常
4、ArrayIndexOutOfBoundsException
数组下标越界(下标超值)
5、NullPointerException
空值异常(访问 null 对象失败)
6、ClassCastException
类强制转换异常
7、ClassNotFoundException
类加载异常
8、IllegalArgumentException
方法接收了非法参数异常
9、NumberFormatException
数字格式转换异常
五、自定义异常
一个类只要继承了 Exception 那么这个类就是一个自定义异常类
六、异常分类
1、编译时异常(编写时出现)
2、运行时异常(运行时出现)
七、异常结构图
1、Throwable 是类不是接口
2、Error 表示错误,不是我们用程序可以解决的
3、Exception 是所有异常的根,下面又分为很多种异常情况
八、数组扩展
1、一维数组
一维数组是最简单的形式,它是具有相同数据类型的元素的有序集合。这些元素存储在连续的内存位置上,并通过索引访问。一维数组可以表示为单行或单列的表格,其中每个元素在表格中占据一个位置
2、二维数组
二维数组是具有行和列的表格结构,也称为矩阵。它由多个一维数组组成,每个一维数组代表矩阵中的一行或一列。二维数组的元素可以通过使用行和列的索引访问。
存值和声明必须写一维下标长度,也就是第一个[]
二维数组声明:必须给一维指定长度
取值要用循环
3、三维数组
三维数组则是一个具有多个表格形式的数据结构,每个表格可以看作是一个二维数组。三维数组的元素可以通过使用三个索引来访问,第一个索引表示表格,第二个索引表示行,第三个索引表示列。