1、JAVA中的异常也是对象,jdk中也提供了很多异常类
(1)包图中java.lang
(2)Error错误的话,一般来讲,就不是代码可以处理的问题了
(3)RuntimeException有很多子类,中NullPointerException是空指针异常(对一个空的引用访问方法),ArrayIndexOutOfBoundsException数组索引越界异常,ClassCastException是JVM在检测到两个类型间转换不兼容时引发的运行时异常。
2、根据类的层次结构对异常进行分类
(1)RuntimeException中有很多子类,这些子类中,比如NullPointerException,其实可以通过if(为空)...else if(不为空)来进行处理,不必非得通过try和catch来控制
(2)非RuntimeException中,有一个FileNotFoundException异常,文件未找到异常,要读一个文件,但是文件不归代码管,归磁盘管,文件若删除掉,那么就会出现异常。因此,这类错误,就必须要使用try和catch方法。代码控制不了,某些情况下会出现的异常。
3、
(1)unchecked异常:不管是否使用try和catch方法处理,编译器都不会管。因为Error错误出现的很少,RuntimeException可以通过代码来处理,来避免的。
(2)checked异常:编译器会进行检查
(3)所讲的处理和不处理指的是:unchecked异常即使不用try和catch方法也不会报错,可以通过编译;但是checked异常不用try和catch方法会报错