使用 throws Exception 获取函数的堆栈跟踪 [重复]
Posted
技术标签:
【中文标题】使用 throws Exception 获取函数的堆栈跟踪 [重复]【英文标题】:Get stacktrace of function with throws Exception [duplicate] 【发布时间】:2017-03-11 20:45:55 【问题描述】:假设我有这样的功能
public JSONObject parseMessage(InputStream fileName) throws Exception
它会抛出一个错误,我在哪里可以得到它的堆栈跟踪?
我知道我是否有类似的东西
try catch(Exception e) //I could save it to a var here
但是如何使用throws Exception
的函数将堆栈跟踪保存为变量?
感谢大家的帮助
【问题讨论】:
您想在函数抛出异常之前获取堆栈跟踪信息吗? 你可以catch
它,处理它,然后throw
它再次。
【参考方案1】:
您可以使用Apache commons 将异常堆栈跟踪转换为字符串。
这个类在 Apache commons-lang-2.2.jar 中可用:
org.apache.commons.lang.exception.ExceptionUtils.getStackTrace(Throwable)
【讨论】:
或者只使用现有的.getStackTrace()
,它返回StackTraceElement[]
,它有一个非常好的.toString()
。
或Arrays.toString(Thread.currentThread().getStackTrace());
。以上是关于使用 throws Exception 获取函数的堆栈跟踪 [重复]的主要内容,如果未能解决你的问题,请参考以下文章
php 抛出一个异常throw new Exception(...),报错Class 'ss\Exception' not found为啥?
Java中的异常-Throwable-Error-Exception-RuntimeExcetpion-throw-throws-try catch
异常处理时为什么有些异常throw出去需要在函数头用throws声明,有些就不用