Java 为什么异常没有一个方便的方法以字符串形式返回stacktrace?

Java 为什么异常没有一个方便的方法以字符串形式返回stacktrace?,java,exception-handling,language-lawyer,Java,Exception Handling,Language Lawyer,前几天,我承认我第一次需要以字符串的形式获取堆栈跟踪。e、 printStackTrace当然不会返回一个 我需要使用这个解决方案来得到我想要的 是的,我意识到你可以获取堆栈跟踪元素,然后自己迭代它们,并且有第三方库可以在一行中完成,但是为什么在标准库中没有任何东西可以为你这样做并返回字符串呢?我总是使用e.toString,这就足够了。 如果需要更具体的内容,可以处理堆栈跟踪字符串result=ex.toString+\n;StackTraceElement[]trace=ex.getStac

前几天,我承认我第一次需要以字符串的形式获取堆栈跟踪。e、 printStackTrace当然不会返回一个

我需要使用这个解决方案来得到我想要的

是的,我意识到你可以获取堆栈跟踪元素,然后自己迭代它们,并且有第三方库可以在一行中完成,但是为什么在标准库中没有任何东西可以为你这样做并返回字符串呢?

我总是使用e.toString,这就足够了。
如果需要更具体的内容,可以处理堆栈跟踪字符串result=ex.toString+\n;StackTraceElement[]trace=ex.getStackTrace;对于int i=0;如果我们的代码行?写一个helper方法。这听起来有点小气,但是当你可以用一个干净的方法调用写一行代码时,为什么还要写四行代码呢?我想这就是为什么它被包括在许多常用的第三方libsIt的恼人,但这就是它的方式。如果你想知道为什么你必须询问Oracle的架构师,那么,也许Sun/Oracle没有时间实现每个人都需要的所有方法。否则我们根本不需要任何第三方库,或者,为什么他们不实现DowhatCarlosRequireds或DowhatDonaldRequireds方法,所以我们只需要编写一行代码?这听起来有点小,但是如果三行代码太多,您可以编写自己的实用程序方法。就我个人而言,我质疑将堆栈跟踪折叠成字符串的价值。无论是人工消费还是自动消费,类似列表的结构更容易解析。对不起,我真的不知道为什么Java创建者没有实现一种更简单的方法来将stacktrace元素转换为字符串。我可以假设他们认为这对于异常处理不是那么必要,他们把所有的代码放在一行,就像问题所问的那样。你为什么要问他们是否读过这个问题?@LewBloch,因为我没有问如何将堆栈跟踪作为字符串获取。此外,我已经说过我知道如何获取堆栈微量元素,但他也提供了解决方案。但你确实说过,前几天我需要。。。以字符串形式获取堆栈跟踪,然后。。。在一行中完成,但是为什么标准库中没有为您执行此操作并返回字符串的内容?所以,是的,您问过如何将堆栈跟踪作为一行中的字符串,这个答案向您展示了一种方法。很明显,他们确实读过你的问题,所以没有必要这么大声嚷嚷。