Java Top.

使用Spring 5和Spring Boot 2开始,通过学习春天课程:

>>查看课程

1.介绍

在处理Java中的异常时,我们经常记录或只是显示堆栈痕迹。但是,有时,我们不想打印堆栈跟踪,我们可能需要将堆栈跟踪写入文件,到数据库,甚至通过网络传输它。

出于这些目的,使堆栈跟踪为a细绳会非常有用。不幸的是,Java没有提供直接做的非常方便的方法。

2.与核心Java转换

让我们从核心库开始。

功能printstacktrace()例外类可以拿一个参数,无论是一个参数打印流或者Printwriter.。因此,可以使用aStringWriter.,将堆栈跟踪打印到a中细绳

StringWriter SW = new StringWriter();printwriter pw =新的printwriter(sw);E.printStacktrace(PW);

然后,打电话sw.tostring()将返回堆栈跟踪作为一个细绳

3.与Commons-Lang转换

虽然以前的方法是将堆栈跟踪转换为的最简单方法细绳使用核心Java,它仍然有点繁琐。幸运的是,Apache Commons-Lang提供完成作业的功能。

Apache Commons-lang是一个非常有用的库,提供了Java API的核心类中缺少的很多功能,包括可用于处理异常的类。

首先,让我们从项目配置开始。使用Maven时,我们只需要添加以下依赖pom.xml.

<依赖>  org.apache.commons   Commons-Lang3   3.11  

然后,在我们的案例中,最有趣的类是异常,它提供了操纵例外的函数。使用此类,将堆栈跟踪作为一个细绳从A.例外非常简单:

String StackTrace = ExpectionUtils.getStacktrace(E);

4。结论

获取异常的堆栈跟踪作为一个例外细绳并不困难,但它远非直观。本文介绍了两种方式,可以使用核心Java或使用Apache Commons-lang。

请记住,Java 9将带来一个新的stackwalking api.这应该更容易。

一如既往,可以找到代码样本在github上

Java底部

使用Spring 5和Spring Boot 2开始,通过学习春天课程:

>>查看课程
评论在本文上关闭!