面试题总结——异常类(Exception)相关

面试题中的异常(Exception)相关问题、解决以及延伸(持续更新)

  1. 下面关于异常处理,哪些说法是正确的?
    A. 所有在本方法中可能抛出的异常都必须显式的在方法上用throws进行声明
    B. Error的子类表示无法修饰的问题
    C. RuntimeException表示只在运行时(runtime)才可能出现这个异常。而普通Exception表示在运行时(runtime)和编译期(compile time)都有可能出现的异常
    D. Throwable是Exception的子类

正确答案:B
A. 可以不用throws声明,也可以用try{}catch (Exception){} 进行处理,RuntimeException(非受查异常)不需要throw声明。
C. Exception:这种在编译时被强制检查的异常称为"受检查的异常",这种异常强制我们catch或throw的异常。遇到这种异常必须进行catch或throw,如不处理,编译器会报错。比如:IOException。
RuntimeException:运行时异常,这种异常我们不需要处理,完全有虚拟机接管,比如我们常说的NullPointerException,我们在写程序时不会进行catch或throw。
RuntimeException是继承自Exception的,只是虚拟机对这两种异常进行了区分。
D. Throwable是Exception的父类。

  1. 下面关于Java异常类的描述,说法正确的有?
    A. 异常类的继承结构:基类为Throwable,Error和Exception实现Throwable,RuntimeException和IOException等继承Exception
    B. 非RuntimeException一般是外部错误(不考虑Error的情况),其必须在当前类被try{}catch语句所捕获
    C. Error类体系描述了Java运行系统中内部错误以及资源耗尽的情形,Error不需要捕捉
    D. RuntimeException体系包含错误的类型转换、数组越界访问和视图访问空指针等等,必须被try{}catch语句块捕获

正确答案:B.C
A. Error和Exception应该为继承Throwable类
D. RuntimeException(运行时异常/受查异常),这种异常由虚拟机进行处理,不需要try{}catch语句块捕获或throw处理

延伸阅读:

  1. 异常类的类图在这里插入图片描述
  • 8
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值