摘要:异常栈轨迹是指当时,对象抛出过程穿梭所经历的多个方法调用层方法调用栈。越接近语句的方法先进入异常栈。异常原因链在类中的属性,表示被当前异常包装的原始异常。可以称为异常原因在打印异常栈轨迹时,会递归打印原始异常的异常栈。现在来分析一下方法。
(stack trace)异常栈轨迹是指:
当 throw Throwable 时, Throwable对象抛出过程(穿梭)所经历的多个方法调用层(方法调用栈)。越接近 throw 语句的方法先进入异常栈。
(Throwable Causal Chain)异常原因链:
在Throwable类中的cause属性,表示被当前异常包装的原始异常。(可以称为异常原因)
在打印异常栈轨迹时,会递归打印 原始异常的异常栈。
现在来分析一下 Throwable.printStackTrace() 方法。
在
Throwable.printStackTrace(PrintStreamOrWriter s) 内部,我们可以看到:
在打印异常栈时,是
先打印 当前异常对象this的 异常栈。
然后再打印 异常原因链。(递归打印 原始异常的异常栈)
synchronized (s.lock()) { // Print our stack trace // 1. 先打印 当前异常对象this的 异常栈。 s.println(this); StackTraceElement[] trace = getOurStackTrace(); for (StackTraceElement traceElement : trace) s.println(" at " + traceElement); // Print suppressed exceptions, if any for (Throwable se : getSuppressed()) se.printEnclosedStackTrace(s, trace, SUPPRESSED_CAPTION, " ", dejaVu); // Print cause, if any // 2. 打印 异常原因链 Throwable ourCause = getCause(); if (ourCause != null) ourCause.printEnclosedStackTrace(s, trace, CAUSE_CAPTION, "", dejaVu); }
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/70772.html
摘要:虚拟机在执行程序的过程中会把它所管理的内存划分为若干个不同的数据区域,本篇文章将会对这些数据区域进行简略的介绍。运行时常量池运行时常量池是方法区的一部分。直接内存直接内存不是虚拟机运行时数据区的一部分,不是虚拟机规范中定义的内存区域。 Java虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干个不同的数据区域,本篇文章将会对这些数据区域进行简略的介绍。JVM所管理的内存包括的...
摘要:是那些可能在虚拟机正常运行期间抛出的异常的超类。运行时异常定义及其子类都被称为运行时异常。对于语言中的关键字和,虚拟机中并没有特殊的字节码指令去支持它们,都是通过编译器生成字节码片段以及不同的异常处理器来实现。 前言 在一些传统的编程语言,如C语言中,并没有专门处理异常的机制,程序员通常用方法的特定返回值来表示异常情况,并且程序的正常流程和异常流程都采用同样的流程控制语句。Java语言...
摘要:虚拟机运行时数据区分为以下几个部分。程序计数器也是在虚拟机规范中唯一没有规定任何异常情况的区域。在方法运行期间不会改变局部变量表的大小。长度在位和位的虚拟机中,分别为官方称它为。 Java虚拟机运行时数据区 详解 2.1 概述 本文参考的是周志明的 《深入理解Java虚拟机》第二章 ,为了整理思路,简单记录一下,方便后期查阅。 2.2 运行时数据区域 Java虚拟机在Java程序运行时...
摘要:允许存在多个,用于针对不同的异常做不同的处理。表示程序可能需要捕获并且处理的异常。因此,我们应该尽可能的避免通过异常来处理正常的逻辑检查,这样可以确保不会因为发生异常而导致性能问题。异常表中的每一条记录,都代表了一个异常处理器。 showImg(https://segmentfault.com/img/remote/1460000017918154?w=640&h=100); show...
阅读 3550·2021-10-09 09:43
阅读 6146·2021-09-07 10:15
阅读 2746·2019-08-30 14:03
阅读 3073·2019-08-29 11:01
阅读 1715·2019-08-29 10:56
阅读 1074·2019-08-28 17:52
阅读 3501·2019-08-26 11:42
阅读 2546·2019-08-26 10:33