在程序运行时打断正常程序流程的任何不正常的情况称为错误或异常。
throw和throws的区别?
throw:真实抛出一个异常。
throws:声明会抛出一个异常。
public Object pop() throws EmptyStackException{ //声明抛出异常
Object obj;
if(size==0)
throws new EmptyStackException(); //抛出异常
obj=objectAt(size-1);
setObjectAt(size-1,null);
size--;
return obj;
}
final、finally、finalize的区别?
final:修饰符,如果修饰类,则该类不能被继承;如果修饰方法和变量,则该方法和该变量不能被改变。
finally:是try-catch-finally最后一部分,不论发生什么情况都会执行,一般用于关闭文件或者释放其他系统资源。finally部分可以省略,但如果finally部分存在,则一定会执行finally里面的代码。
finalize:是object类的一个方法,在垃圾收集器执行的时候会调用被回收对象的该方法。
try-catch-finally中哪个部分可以省略?
catch和finally都可以被省略,但是不能同时省略。也就是说有try的时候,必须后面跟一个catch和或者inally。
try-catch-finally中,如果catch中return了,finally还会执行吗?
finally一定会执行,即使是catch中return了,catch中的return会等finally中的代码执行后才会执行。
常见的异常类有哪些?
- NullPointerException:空指针异常
- ClassNotFoundException:指定类不存在
- NumberFormatException:字符串转换为数字异常
- IndexOutOfBoundsException:数组下标越界异常
- ClassCastException:数据类型转换异常
- FileNotFoundException:文件未找到异常
- NoSuchMethodException:方法不存在异常
- IOException:IO异常
- SocketException:Socket异常