1、异常的API结构是怎样的?Error和Exception有什么区别?
Throwable是所有异常和错误的父类。其中错误Error是能捕获但不能处理。
而Exception是能捕获能处理的。
2、异常的执行顺序怎样?如果在try块中有return,finally会执行吗?
首先执行try块,顺序执行。如果在try块中,有异常抛出,则转向catch块执行。同时
中止try块中其余的代码。
当try·catch执行完后,继续执行try·catch之后的代码
3、finally是否在任何时候都会执行?
Finally是无论是否有异常都会执行的语句块。如果在try或catch中有return语句,finally会在跳出方法前执行。只有在try或catch块中,程序结束,finally才不会执行。
4、throw 和throws的区别是什么?
Throw是一条语句,表示显示抛出一个异常对象。
Throws是方法修饰符,表示该方法可能会抛出某种异常。这时,如果调用该方法,则必须处理该方法抛出的异常。
5、异常分为几种?如何区分?列出常见的异常。
异常分为两种,一种是编译期异常(检查异常),一种是运行期异常(非检查异常)。
1.编译期异常:要求用户必须用try·catch捕获。如果用户不捕获,则编译错误。
2.运行期异常:用户可以捕获,也可以不捕获。不捕获也不会有编译错误。所有的运行期异常都是RuntimeException的子类。
常见异常:1.java.lang.NumberFormatException 将字符串转化为数字类型,转换失败抛出的异常
2.java.lang.NullPointerException 空指针异常,对Null值调用方法或属性时抛出。
3.java.langArrayIndexOutOfBoundsException 数组下标越界异常。当数组变量引用不合法下标时抛出异常。
4.Java.io.FileNotFoundException文件未找到异常。