知识点

  • 异常
  • try…catch…
  • Throwable的成员方法
  • 编译时异常和运行时异常的区别
  • 自定义异常
  • 并发修改异常

异常本质上是个类,有很多的方法

例如
Class ArrayIndexOutOfBoundsException

image.png

我们可以看出,
Throwable类是所有异常类的超类。

异常中,我们有RuntimeException和非RuntimeException

RuntimeException是我们在运行的过程中才检查的异常,如果出现非RuntimeException程序都无法通过编译。


Throwable的成员方法

image.png

其中 getMessage()是抛出异常的原因
toString()是抛出异常的原因加异常的类

printStackTrace()抛出异常的原因加类加出现异常具体的行数

image.png

编译时异常和运行时异常的区别

Java中的异常被分为两大类:编译时异常和运行时异常,也被称为受检异常和非受检异常

所有的RuntimeException类及其子类被称为运行时异常,其他的异常都是编译时异常

image.png

image.png

image.png

image.png

image.png

image.png


并发修改异常——bug及bug的调试
image.png

1,创建一个列表
2,往列表添加元素
3,用迭代器访问列表
4,如果列表内有”World”,则添加一个javeee

image.png

运行之后会出现这些异常
我们得从下往上看

at com.itheima3.CollectionDemo.main(CollectionDemo.java:19)
说明在CollectionDemo这个类中的main函数,类的19行出现了问题
在第19行调用了,ArrayList中Itr.next方法,Itr是ArrayList的内部类,这个方法出现了异常
这个方法中的checkForComodification方法出现了问题(ArrayList.java:1013)在1013行

我们找到后,把与我们编程有关的内容复制出来

image.png

image.png

这里的add方法是在,ArrayList类中的

ArrayList中也有很多内部类,内部类也有自己的add方法,但是ArrayList无法调用

0fa89db5e8424c2aacd155ad0ca79bf.jpg