一、throw 和 throws 的区别?
throw:
- 表示方法内抛出某种异常对象
- 如果异常对象是非 RuntimeException 则需要在方法申明时加上该异常的抛出 即需要加上 throws 语句 或者 在方法体内 try catch 处理该异常,否则编译报错
- 执行到 throw 语句则后面的语句块不再执行
throws:
- 方法的定义上使用 throws 表示这个方法可能抛出某种异常
- 需要由方法的调用者进行异常处理
二、final、finally、finalize 有什么区别?
- final (修饰符): 可以用来修饰类,不能被继承;可以用来修饰方法,不能被重写;可以用来修饰变量,不能改变;
- finally(语句体): 是try语句的语句体,不能单独使用;通常用来释放资源;
- finalize(方法名): 当垃圾回收器确定不存在该对象的更多引用时,由对象的垃圾回收器调用该方法;
三、try-catch-finally 中哪个部分可以省略?
catch 和 finally 语句块可以省略其中一个
四、try-catch-finally 中,如果 catch 中 return 了,finally 还会执行吗?
肯定会,finally是一定会执行的,会在return前执行;
五、常见的异常类有哪些?
- 异常非常多,Throwable 是异常的根类;
- Throwable 包含子类 错误-Error 和 异常-Exception 。
- Exception 又分为 一般异常和运行时异常 RuntimeException。
- 运行时异常不需要代码显式捕获处理。
注:以上内容仅提供参考和交流,请勿用于商业用途,如有侵权联系本人删除!
注:此博客只是为了记忆相关知识点,大部分为网络上的文章,在此向各个文章的作者表示感谢!