java异常栈_简单看java异常栈
(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异常栈相关推荐
- java ssh客户端_简单的Java SSH客户端
java ssh客户端 可以使用jcabi-ssh在Java中通过几行代码通过SSH执行shell命令: String hello = new Shell.Plain(new SSH("ss ...
- java 静态块初始化_简单了解java中静态初始化块的执行顺序
这篇文章主要介绍了简单了解java中静态初始化块的执行顺序,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 在java中,其应该是先于所有的方法执行. ...
- java mapreduce程序_简单的java Hadoop MapReduce程序(计算平均成绩)从打包到提交及运行...
[TOC] 简单的java Hadoop MapReduce程序(计算平均成绩)从打包到提交及运行 程序源码 import java.io.IOException; import java.util. ...
- java event事件_简单的Java Event-事件框架
自己写的一个简单的Java事件框架.目前具备以下功能: 1.通过继承Event类,用户可自定义事件. 2.通过EventService 的fireEvent(Event e) 发出一个事件. 3.通过 ...
- java ear包_简单介绍Java 的JAR包、EAR包、WAR包区别
原标题:简单介绍Java 的JAR包.EAR包.WAR包区别 WAR包 WAR(Web Archive file)网络应用程序文件,是与平台无关的文件格式,它允许将许多文件组合成一个压缩文件.War专 ...
- java for 死循环_简单的java死循环 java中的死循环问题
java中死循环是什么意思 循环一次不再循环是死循环java中死循环是什么意思 循环一次不再循环是死循环 还是不断循环才是死JAVA中死循环的意思是,不停地循环,不会终止,例如: for (int i ...
- udp java 检测连接_简单的JAVA UDP连接测试
UDP不像TCP那样专门提供了一个SERVER端API,所有的都用DatagramSocket,接受packet数据报.所以说UDP是无连接的,因为所有的链接都是在数据报里,让DatagramSock ...
- java学生通讯录_简单实现Java通讯录系统
本文实例为大家分享了Java通讯录系统的具体代码,供大家参考,具体内容如下 import java.util.Scanner; class Person { String name; String n ...
- java进行抽奖_简单实现java抽奖系统
本文为大家分享了java抽奖系统的具体代码,供大家参考,具体内容如下 用户信息类 /* * 用户信息类 * 1.账号 * 2.密码 * 3.卡号 * 4.是否登录 */ public class Us ...
- java 创建水果_简单的java水果商店后台
packagecom.fruit;importjava.util.ArrayList;importjava.util.Scanner;public classFruitshop {public sta ...
最新文章
- Anaconda3+python3.7.10+TensorFlow2.3.0+PyQt5环境搭建
- 手动建库11.2.0.4
- android java file 清理垃圾获取文件大小 删除文件等操作
- jboss7 java版本,jdk 1.7推荐使用什么社区版本的Jboss以及为什么
- 超级简单的配置虚拟机网络yum源
- 7-8 德才论 (25 分)(C语言实现)
- 2019四川大学第二届SCUACM新生赛题解
- Python入门--特殊方法__len__(),__add()__
- C#中如何生成矢量图
- gridview控件添加属性
- winform Chart图表控件使用(绑定数据)
- 服务器系统中怎么调出dos界面,win10怎么进入dos界面_教你两种方法进入win10dos界面...
- 考研必备数学公式大全(数学二)(线性代数篇)
- 《时代》杂志评出的100部最佳英语小说(含下载)
- BUUCTF中的“新年快乐”
- 表格制作过程html,HTML进行表格制作
- <math.h>中sin cos函数的用法
- 软件工程-白盒测试(实验报告)
- 学习ps能做些什么呢
- 微信小程序的video组件,更改播放按钮
热门文章
- c++filt看函数名
- cesium 旋转图片
- 我的 Serverless 实战 — Serverless 腾讯云文字识别(OCR)详细部署过程
- Android Red5视频通讯第一篇:连接服务器
- 安卓调用科大讯飞语音
- 免安装mysql_免安装版的Mysql
- 新瓶装老酒--近期APT32(海莲花)组织攻击活动样本分析
- 计算机tcpip协议主要功能,tcp协议的主要功能
- pdf去除签名_扫描全能王一键识别图片/PDF/文档/文本文字随意转换
- OpenCV-Calibration-Detailed Description翻译