- java.lang.Exception:可以进行异常处理
- |-----编译时异常(checked)
|----IOException|----FileNotFoundException|----ClassNotFoundException- |-----运行时异常(unchecked)
|----NullPointerException 空指针异常|----ArrayIndexOutOfBoundsException 数组角标越界|---- StringIndexOutOfBoundsException 字符串角标越界|----ClassCastException|----NumberFormatException|----InputMismatchException|----ArithmeticException 算术异常
如何看待代码中的运行时异常和编译时异常?
1:使用try-catch-finally处理编译时异常,是得程序在编译时就不再报错,但是运行时仍可能报错。相当于我们使用try-catch-finally将一个编译时可能出现的异常,延迟到运行时出现
2:开发中,由于运行时异常比较常见,所以我们通常就不针对运行时异常编写try-catch-finally了。针对编译时异常,我们说一定要考虑异常的处理。
throw和throws的区别
1.throw表示抛出一个异常类的对象,生成异常对象的过程。声明在方法体内。(throw是异常对象的产生时手动生成的一个异常对象)
2.throws属于异常处理的一种方式,声明在方法的声明处。(throws是异常的处理方式之一)