Java异常

Java异常体系


image.png

从概念角度看Error和Exception的区别

  • Error:程序无法处理的系统错误,一般指与JVM相关的问题,如系统崩溃,虚拟机错误,内存空间不足,方法站调用溢出等(OutOfMemoryError),对于这类错误,一般编译器不做检查,建议先终止程序
  • Exception:程序可以处理的异常

Exception:

  • RuntimeException:如数组下标越界,访问空指针等,不可预知,程序编写时避免
  • 非RuntimeException:必须进行处理的异常,不处理程序没法通过,如IOException

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

image.png

Java的异常处理机制

  • 抛出异常:方法创建异常对象,并交由运行时系统处理,异常对象中包含了异常信息,运行时系统负责寻找处理异常的代码并执行
  • 捕获异常:抛出异常后,系统开始寻找合适的异常处理器处理异常,当异常处理器所能处理的异常和抛出的异常相符时,即为合适的异常处理器,系统从发生异常的方法开始,依次回查栈中的方法,直至找到含有异常处理器的方法并执行,若没找到则终止运行

Java异常处理消耗性能的地方

  • try-catch块影响JVM的优化
  • 异常对象实例需要保存栈快照等信息,开销较大
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Java异常 异常指不期而至的各种状况,如:文件找不到、网络连接失败、非法参数等。异常是一个事件,它发生在程序运行...
    java部落阅读 3,182评论 1 13
  • Java异常架构与异常关键字 Java异常简介 Java异常是Java提供的一种识别及响应错误的一致性机制。Jav...
    老pao说Java阅读 294评论 0 1
  • Java异常简介 Java异常是Java提供的一种识别及响应错误的一致性机制。Java异常机制可以使程序中异常处理...
    JourWon阅读 1,296评论 0 5
  • 一、概念介绍 异常是发生在程序执行过程中阻碍程序正常执行的错误事件,当一个程序出现错误时,可能的情况分为以下3种:...
    布衣不才Jerry阅读 409评论 0 1
  • 先看一道题,输出啥? 如果你一眼就能看出答案,那么这篇文章你就不用浪费时间看啦。输出结果为: 为什么要使用异常? ...
    tracy_668阅读 484评论 0 2