Java面试题,Java的异常问题

1. finally 块中的代码什么时候被执行?

        finally的代码无论如何都会被执行。

        return语句是最后一步,做完就会结束,所以finally语句实在return之前执行的

2. finally 是不是一定会被执行到?

        不一定

        1,当程序进入try块中出现异常,结束代码就不会执行finally

        2,当程序再try块中强制退出时也不会去执行finally中代码(exit)

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

        会

4. try-catch-finally 中那个部分可以省略?

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

5. Error 和 Exception 的区别?

        都是继承于Throwable类

        error是Java程序中不可以预料的异常情况,会导致jvm不可处理或者不可恢复的情况。

        exception是可以预料的异常情况,可以获取到这种异常,并且对异常进行处理

6. 运行时异常与受检异常有何异同?

        运行时异常时程序再执行过程中遇到的异常情况属于是程序错误,可以再开发或者测试时避免。

        受检异常是指在程序执行期间可能发生的异常情况,需要在编写代码时进行处理,否则编译不通过。

        最大的不同就是在于处理异常的方式,受检异常需要进行显式的处理,而运行时异常不需要,受检异常也可以再代码层面上预测,从而再编写代码是比卖你出现异常的情况,而运行时异常是可以避免的。

7. throw 和 throws 的区别?

        throw关键字用于程序中显示的抛出一个异常对象,通常用于再方法内部抛出一个异常。

        throws关键字用于声明可能抛出的某类异常,通常用于在方法签名中声明方法可能会抛出的异常。

8. 常见的异常类有哪些?

        NullPointerException:当应用程序试图访问空对象时,则抛出该异常

        SQLException:提供关于数据库访问错误或其他错误信息的异常。

        NumberFormatException:当应用程序试图将字符串转换成一种数值类型,但该字符串不能转换为适当格式时,抛出该异常。

        IOException:当发生某种I/O异常时,抛出此异常。此类是失败或中断的I/O操作生成的异常的通用类。

        FileNotFoundException:当试图打开指定路径名表示的文件失败时,抛出此异常。

9. 主线程可以捕获到子线程的异常吗?

        如果不做特殊处理,是不可以的。

        需要使用ExecutorService。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

不会Java的MING

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值