1、在java中真正难处理的是运行期出现的错误。而不是编译期出现的错误。
2、观察错误的名字和行号最重要,程序是调出来的,而不是写出来的。
3、首先什么是异常,
5、抛出异常、捕获异常。
6、e.printStackTrace()打印出错误的堆栈信息。其实默认的是运行时java抛出的异常是一样的。什么错误,在哪里出错。
7、
其实那个ae到底是什么,是那个自己定义异常对象的名字,异常生成以后它是一个异常对象,这个异常对象系统传递给我们,传递到哪里,传递到ae这个对象里面,什么名都行,我们想要知道这个异常内部的一些信息,所以我们必须把这个对象给定义出来,才可以去用。相当于那个
是一个方法的定义,而ae是一个形参。那么什么时候初始化呢,是系统默认给我们初始化。一旦产生错误它就会初始化。
8、当我们定义的一个方法中抛出了一个异常。我们调用这个方法时要么继续抛出,要么用trycatch语句捕获。
Throwable叫做可以抛出的东西,是所有异常类的根类。
其直接子类,叫做Error和Exception
Error是系统错误,是虚拟机异常,你无法处理的错误。
Exception是可以处理的错误。
(你开车在山路上行驶,你车的刹车系统出现问题了,你可以修好,这相当于Exception,你开车山塌了,这相当于Error,你解决不了。)
RunntimeException是运行时异常。可以不去捕获,也可运行,只不过运行出错了而已。
可控异常(可查异常),凡在你在jdkAPI中方法后面有那个抛出异常的,你在调用时都要捕获异常,而且是强制的,否则编译出现问题。你只有抛出或是捕获。
http://www.cnblogs.com/qinqinmeiren/archive/2010/10/14/2151702.html
附上一篇讲解异常的博客。
http://blog.csdn.net/huhui_cs/article/details/38817791
再次附上讲解可查异常、不可查异常、运行时异常、非运行时异常的博客。讲解非常深入。