谈谈你对Exception 和 Error的理解

谈谈你对Exception 和 Error的理解

1. 审题

此题面试官主要想考察你对Java异常处理机制的理解,答题的思路可以从以下几个方面切入

  • Exception 和 Error的共性。
  • Exception 和 Error的差异。
  • 针对 Exception 详细谈谈。
  • 针对 Error 详细谈谈。

2. 面试现场

2.1. Exception 和 Error 的共性

Exception 和 Error 都继承了Throwable类。Throwable类的实例才能被程序处理(throw catch)。

2.2 Exception 和 Error 的差异

Exception 从字面意思讲,指的是程序运行过程中,能被处理的情况,是在预期范围内的。

Error指的是程序运行过程中,不太可能出现的情况,而且很有可能导致程序挂掉。

2.3 详细谈谈Exception

Exception 又分为cheked exception 和 unchecked exception。

checked exception 指的是在源代码里必须处理的异常。例如:

  • IOException

unchecked exception 指的是不用在源代码里处理,为运行时异常。例如:

  • NullPointerException
  • ClassCastException

2.4 详细谈谈Error

绝大数的Error会导致程序处于非正常状态。例如:

  • NoClassDefFoundError
  • OutOfMemoryError
  • StackOverflowError

2.5 异常使用的建议

  • 不要用try catch 包裹住一大段代码,这样会产生额外的开销。例如异常来控制代码流程,比if else switch 等低效的多。
  • Java 每实例化一个Exception就会对栈进行快照,这样会带来一定的性能开销。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值