Java高频面试题(异常)

Java高频面试题(异常)

4 异常

4.1 Java中的异常类型是什么?

java中有两种异常:检查时异常和非检查时异常。

非检查时异常就是我们常说的运行时异常,无需显示声明抛出,也就是不需要try-catch或者在方法后使用throws进行声明,就算方法或者是构造函数的执行可以能会抛出这样的异常,并且非检查的异常可以传播到方法或者构造函数的外面。

检查时异常也就是我们常说的编译时异常,我们必须使用try-catch或者throws进行异常处理。如果没有进行异常处理,在我们编译程序的时候就会发生错误,无法正常进行编译。

4.2 Java中的Exception和Error有什么区别

Exception与Error都是Throwable的子类。

Exception是用户程序可以捕获的异常情况,作为程序员的我们是可以继续进行处理,来保证程序正常运行。

Error是系统层面或者说JVM层面的异常,我们是无法进行处理的,例如内存溢出,这类异常我们是无法捕获的。

4.3 throw和throws有什么区别

throw是关键字,一般用在方法体中,代表我们进行异常抛出,代表一定会有异常抛出。

throws是语句,在程序声明处进行使用,表明可能会出现的异常,但是并不代表程序运行一定会产生这个异常,表明方法不能处理的异常,如果程序产生了异常,会将异常向上抛出,多个异常之间是用逗号来进行分割的。

4.4 finally代码块是什么

无论是否抛出异常,finally代码块是总是会被执行的(处理强行关闭JVM等极端操作,finally就不会被执行了),一般用于进行资源的释放,如:I/O缓冲区,数据库连接。

4.5 异常处理完成之后,Exception对象会发生什么变化

Exception对象会在下一垃圾回收过程中被回收掉。

4.6 Java异常处理机制有哪些

使用try-catch-fianlly语句来捕获异常

使用throws来声明可能会出现的异常,如果异常出现会向上抛出

使用throw将异常来进行抛出

4.7 为什么要进行异常处理

Java异常处理机制可以让程序具有极好的容错性与健壮性,不会因为出现异常而是程序崩溃停止。当程序运行出现意外情形时,系统会自动生成一个Exception对象来通知程序,从而实现类“业务功能实现代码”与“错误处理代码”分离,增强了程序的可读性。

4.8 Java有哪些常见的异常

ClassCastException:类转换异常一般出现在对象向下转换时,当我们视图将对象强制转换为不是实例的子类的时候,抛出该异常。

ArrayIndexOutOfBoundException:数组下标越界异常,对于数组来说,当你使用不合法的索引去访问数组的时候就会抛出该异常。

NullPointerException:空指针异常,通过null进行方法和属性调用会抛出该异常

ArithmeticException:算数运算异常,除以0就会抛出该异常

NumberFormatException:数字转换异常,当一个字符串想要转换为一个指定的数据类型,但是字符串的格式不满足数组类型要求的格式的时候,抛出此异常。

InputMismatchExcep

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值