(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("\tat " + traceElement);

// Print suppressed exceptions, if any

for (Throwable se : getSuppressed())

se.printEnclosedStackTrace(s, trace, SUPPRESSED_CAPTION, "\t", dejaVu);

// Print cause, if any

// 2. 打印 异常原因链

Throwable ourCause = getCause();

if (ourCause != null)

ourCause.printEnclosedStackTrace(s, trace, CAUSE_CAPTION, "", dejaVu);

}

java异常栈_简单看java异常栈相关推荐

  1. java ssh客户端_简单的Java SSH客户端

    java ssh客户端 可以使用jcabi-ssh在Java中通过几行代码通过SSH执行shell命令: String hello = new Shell.Plain(new SSH("ss ...

  2. java 静态块初始化_简单了解java中静态初始化块的执行顺序

    这篇文章主要介绍了简单了解java中静态初始化块的执行顺序,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 在java中,其应该是先于所有的方法执行. ...

  3. java mapreduce程序_简单的java Hadoop MapReduce程序(计算平均成绩)从打包到提交及运行...

    [TOC] 简单的java Hadoop MapReduce程序(计算平均成绩)从打包到提交及运行 程序源码 import java.io.IOException; import java.util. ...

  4. java event事件_简单的Java Event-事件框架

    自己写的一个简单的Java事件框架.目前具备以下功能: 1.通过继承Event类,用户可自定义事件. 2.通过EventService 的fireEvent(Event e) 发出一个事件. 3.通过 ...

  5. java ear包_简单介绍Java 的JAR包、EAR包、WAR包区别

    原标题:简单介绍Java 的JAR包.EAR包.WAR包区别 WAR包 WAR(Web Archive file)网络应用程序文件,是与平台无关的文件格式,它允许将许多文件组合成一个压缩文件.War专 ...

  6. java for 死循环_简单的java死循环 java中的死循环问题

    java中死循环是什么意思 循环一次不再循环是死循环java中死循环是什么意思 循环一次不再循环是死循环 还是不断循环才是死JAVA中死循环的意思是,不停地循环,不会终止,例如: for (int i ...

  7. udp java 检测连接_简单的JAVA UDP连接测试

    UDP不像TCP那样专门提供了一个SERVER端API,所有的都用DatagramSocket,接受packet数据报.所以说UDP是无连接的,因为所有的链接都是在数据报里,让DatagramSock ...

  8. java学生通讯录_简单实现Java通讯录系统

    本文实例为大家分享了Java通讯录系统的具体代码,供大家参考,具体内容如下 import java.util.Scanner; class Person { String name; String n ...

  9. java进行抽奖_简单实现java抽奖系统

    本文为大家分享了java抽奖系统的具体代码,供大家参考,具体内容如下 用户信息类 /* * 用户信息类 * 1.账号 * 2.密码 * 3.卡号 * 4.是否登录 */ public class Us ...

  10. java 创建水果_简单的java水果商店后台

    packagecom.fruit;importjava.util.ArrayList;importjava.util.Scanner;public classFruitshop {public sta ...

最新文章

  1. Anaconda3+python3.7.10+TensorFlow2.3.0+PyQt5环境搭建
  2. 手动建库11.2.0.4
  3. android java file 清理垃圾获取文件大小 删除文件等操作
  4. jboss7 java版本,jdk 1.7推荐使用什么社区版本的Jboss以及为什么
  5. 超级简单的配置虚拟机网络yum源
  6. 7-8 德才论 (25 分)(C语言实现)
  7. 2019四川大学第二届SCUACM新生赛题解
  8. Python入门--特殊方法__len__(),__add()__
  9. C#中如何生成矢量图
  10. gridview控件添加属性
  11. winform Chart图表控件使用(绑定数据)
  12. 服务器系统中怎么调出dos界面,win10怎么进入dos界面_教你两种方法进入win10dos界面...
  13. 考研必备数学公式大全(数学二)(线性代数篇)
  14. 《时代》杂志评出的100部最佳英语小说(含下载)
  15. BUUCTF中的“新年快乐”
  16. 表格制作过程html,HTML进行表格制作
  17. <math.h>中sin cos函数的用法
  18. 软件工程-白盒测试(实验报告)
  19. 学习ps能做些什么呢
  20. 微信小程序的video组件,更改播放按钮

热门文章

  1. c++filt看函数名
  2. cesium 旋转图片
  3. 我的 Serverless 实战 — Serverless 腾讯云文字识别(OCR)详细部署过程
  4. Android Red5视频通讯第一篇:连接服务器
  5. 安卓调用科大讯飞语音
  6. 免安装mysql_免安装版的Mysql
  7. 新瓶装老酒--近期APT32(海莲花)组织攻击活动样本分析
  8. 计算机tcpip协议主要功能,tcp协议的主要功能
  9. pdf去除签名_扫描全能王一键识别图片/PDF/文档/文本文字随意转换
  10. OpenCV-Calibration-Detailed Description翻译