Java基础面试题-4day

异常

  1. Exception和Error有什么区别?

Exception类和Error类有一个共同的父类Throwable类
Exception类为异常类,可以使用catch 捕获,捕获之后,Exception类又分为Checked Exception和 Uncheckend Exception
Checked Exception是捕获后必须进行处理的异常
Uncheckend Exception 是捕获后,可以不进行处理的异常
Error类是错误类
不建议用catch进行捕获,是虚拟机不能处理的错误,一般虚拟机会通过停止进程来终止

  1. Checked Exception和 Unchecked Exception有什么区别?

Checked exception 受检查异常,当受检查异常没有使用关键词catch和throw时,程序将不会通过编译
RuntimeException成为运行时异常,运行时异常和其子类的异常为Unchecked Exception,为不受检查的异常,异常出现即使不捕获或者抛出也可以正常通过编译
除了RuntimeException类及其子类之外的Exception类及其子类都是CheckedException
Runtime Exception的子类有:
NullPointException 空指针异常
IllegalArgumentsException 参数错误异常
NumberFormatException 字符串转换为数字格式异常
ArrayIndexOutOfExcepion 数组越界异常
ClassCastException 类型转换异常
ArithmeticException 算术异常
SecurityException 安全错误
等等

  1. Throwable类常用方法有哪些?

String getMessage 返回发生异常时的简要信息
String toString 返回发生异常的详细信息
String getLocalizedMessage() 返回发生异常时对象的本地化信息,当子类没有覆盖该方法的时候,返回的信息和getMessage()一样
void printStackTrace() 在控制台上打印Throwable对象封装的异常信息

  1. try-catch-finally如何使用

try 关键字中输入程序,捕获try语句块中的异常
catch 处理捕获的异常
finally 无论是否捕获或者处理异常,都会执行其中的程序

当try 语句块中和finall语句块中都使用了return,finally语句中return 的结果将会覆盖try语句中的结果

  1. finally中的语句一定会被执行吗?

当在进行finally之前,程序就已经停止的时候
程序中的所有线程都死亡的时候
cpu关闭的时候

  1. 异常使用有什么需要注意的地方

异常不能定义成静态变量,否则可能会引起异常栈信息错乱,每次抛出异常都是抛出new出的异常对象
抛出的异常要有意义
使用日志打印异常之后,就不要使用抛出异常


来自Javaguide总结
https://javaguide.cn/home.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

云来喜

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

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

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

打赏作者

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

抵扣说明:

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

余额充值