0. throw 和 throws 的区别?
throw:是真实抛出一个异常。
throws:是声明可能会抛出一个异常。
1.try和catch和finally问题
--必须有try,catch和finally两者必须选择一个
--有两种异常,error和exception。我们关注的是除了error和runtimeexception之外的异常
--当函数使用的try时候
如果catch处理了异常,则程序调用终止,不会再继续抛异常
如果没有catch,或者catch中没有捕获到对应的异常,则继续向外抛异常,直到有人处理它
2.关于finally的问题
(1)finally中的return 会覆盖 try 或者catch中的返回值
(2)finally 中的 return 会抑制(消灭)前面 try 或者 catch 块中的异常
(3)finally中的异常会覆盖(消灭)前面try或者catch中的异常
75. final、finally、finalize 有什么区别?
final:是修饰符,如果修饰类,此类不能被继承;如果修饰方法和变量,则表示此方法和此变量不能在被改变,只能使用。
finally:是 try{} catch{} finally{} 最后一部分,表示不论发生任何情况都会执行,finally 部分可以省略,但如果 finally 部分存在,则一定会执行 finally 里面的代码。
finalize: 是 Object 类的一个方法,在垃圾收集器执行的时候会调用被回收对象的此方法。
76. try-catch-finally 中哪个部分可以省略?
try-catch-finally 其中 catch 和 finally 都可以被省略,但是不能同时省略,也就是说有 try 的时候,必须后面跟一个 catch 或者 finally。
77. try-catch-finally 中,如果 catch 中 return 了,finally 还会执行吗?
finally 一定会执行,即使是 catch 中 return 了,catch 中的 return 会等 finally 中的代码执行完之后,才会执行。
78. 常见的异常类有哪些?
NullPointerException 空指针异常
ClassNotFoundException 指定类不存在
NumberFormatException 字符串转换为数字异常
IndexOutOfBoundsException 数组下标越界异常
ClassCastException 数据类型转换异常
FileNotFoundException 文件未找到异常
NoSuchMethodException 方法不存在异常
IOException IO 异常
SocketException Socket 异常
网友评论