Java 常见的面试题(异常)

本文详细介绍了Java中throw和throws的区别,throw用于方法内抛出异常,需要在方法声明或try-catch处理;throws则表示方法可能抛出异常,需调用者处理。同时,解析了final、finally和finalize的用途:final修饰不可变类、方法和变量;finally确保代码块始终执行;finalize是对象被垃圾回收前的回调方法。此外,讨论了try-catch-finally结构中catch和finally的可选性及return对finally执行的影响。最后列举了一些常见的异常类,包括Throwable、Error和Exception及其子类。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、throw 和 throws 的区别?

throw:

  1. 表示方法内抛出某种异常对象
  2. 如果异常对象是非 RuntimeException 则需要在方法申明时加上该异常的抛出 即需要加上 throws 语句 或者 在方法体内 try catch 处理该异常,否则编译报错
  3. 执行到 throw 语句则后面的语句块不再执行

throws:

  1. 方法的定义上使用 throws 表示这个方法可能抛出某种异常
  2. 需要由方法的调用者进行异常处理

二、final、finally、finalize 有什么区别?

  1. final (修饰符):可以用来修饰类,不能被继承;可以用来修饰方法,不能被重写;可以用来修饰变量,不能改变;
  2. finally(语句体):是try语句的语句体,不能单独使用;通常用来释放资源;
  3. finalize(方法名):当垃圾回收器确定不存在该对象的更多引用时,由对象的垃圾回收器调用该方法;

三、try-catch-finally 中哪个部分可以省略?

catch 和 finally 语句块可以省略其中一个

四、try-catch-finally 中,如果 catch 中 return 了,finally 还会执行吗?

肯定会,finally是一定会执行的,会在return前执行;

五、常见的异常类有哪些?

  • 异常非常多,Throwable 是异常的根类;
  • Throwable 包含子类 错误-Error 和 异常-Exception 。
  • Exception 又分为 一般异常和运行时异常 RuntimeException。
  • 运行时异常不需要代码显式捕获处理。

注:以上内容仅提供参考和交流,请勿用于商业用途,如有侵权联系本人删除!

注:此博客只是为了记忆相关知识点,大部分为网络上的文章,在此向各个文章的作者表示感谢!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

JAVA·D·WangJing

您的鼓励是我最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值