美文网首页
Error与Exception的区别

Error与Exception的区别

作者: 原创迷恋者 | 来源:发表于2019-08-18 18:58 被阅读0次

Q:Exception和Error有什么区别,运行时异常和一般异常有什么区别?

Exception和Error都是继承了Throwable类,在Java中只有java.lang.Throwable类的实例,才能被throw或catch,它是异常处理机制的基本组成。

Exception和Error体现了Java平台设计者对不同异常情况的分类。Exception是可以预料到得到异常情况,应该被捕获,并进行相应处理。Error是指不大可能出现的情况,绝大部分Error会导致JVM自身处于不正常的不可恢复状态。无法被捕获,和处理。

Exception又可分为可检查异常和不检查异常。不检查异常又被成为运行时异常,通常是可以编码避免的逻辑错误,比如NullPointerException、ArrayIndexOutOfBoundsException等。

image.png

异常处理机制的性能开销

  1. try-catch代码段会影响JVM对代码进行优化。因此建议仅捕获有必要的代码,而不要用一个大的try包住整段代码。
  2. Java每实例化一个Exception,都会对当时的栈进行快照。如果进行频繁操作,这个开销将不能被忽略。

一个扩展
不同的编程范式,会影响到异常处理策略。比如反应式编程,本身是异步、基于事件的,所以出现异常不能简单抛出去。

相关文章

网友评论

      本文标题:Error与Exception的区别

      本文链接:https://www.haomeiwen.com/subject/rmjrsctx.html