剑指Offer(类库)——Java异常体系

Java异常处理机制中主要回答了三个问题:

  1. What:异常类型回答了什么被抛出;
  2. Where:异常堆栈跟踪回答了在哪抛出;
  3. Why:异常信息回答了为什么被抛出。

下面来说一下经常会被问到的问题:Exception和Error的区别

Java异常体系结构如下:
在这里插入图片描述
Error:一般是指JVM相关的问题,比如说系统崩溃,就是说程序无法处理的系统错误如堆栈溢出、内存泄漏,编译器无法检测到。Error是程序无法处理的错误。

Exception:可以让程序去处理的异常,处理之后程序可以恢复运行。Exception是程序可以处理的错误。

来介绍一下Exception的子类:一个是RuntimeException非RuntimeException

RuntimeException:不可预知的程序应该自行避免掉。
非RuntimeException:可预知的,从编译器校验的异常。

从责任角度来看:

  1. Error属于JVM需要负担的责任;
  2. RuntimeException是程序应该负担的责任;
  3. Checked Exception可检查异常是Java编译器应该负担的责任。

常见的错误如下:
在这里插入图片描述

发布了242 篇原创文章 · 获赞 23 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/weixin_44240370/article/details/104127289
今日推荐