1、throw和throws区别?
- throw是用来生命一个方法可能抛出的所有异常信息;
- throws是将异常声明出来不处理,将异常往上传,谁调用谁处理。
2、final、finally、finalize之间的区别?
- final可以修饰类、变量、方法,修饰类表示该类不能被继承;修饰方法表示该方法不能被重写;修饰变量表示该变量是一个常量不能被重新赋值;
- finally一般作用在try-catch的代码块中,在处理异常时,通常我们将一定要执行的代码块,不管是否出现异常,都要执行。
- finalize是一个方法,属于Object类的一个方法,而Object类是所有类的父类。该方法一般垃圾回收时使用,调用system的gc()方法时,会调用finalize(),回收垃圾。
3、try-catch-finally中,如果catch中return了,finally还会执行么?
会执行,会在catch的代码之前执行。
如果finally中有return,则直接返回finally中的代码。
4、常见的异常类?
- NullPointerException:空指针异常;
- SQLException:数据库访问错误或其他错误信息的异常;
- IndexOutOfBoundsException:某排序索引超出范围的异常;
- NumberFormatException:试图用字符串转换成数值是抛出的异常;
- FileNotFoundException:当试图打开指定路径名表示的文件失败时;
- IOException:发生I/O异常时;
- NoSuchMethodException:无法找到特定方法时,抛出该异常;
- RuntimeException:java虚拟机正常运行期间抛出的异常。