Exception 如何在velocity模板中打印异常的堆栈跟踪

Exception 如何在velocity模板中打印异常的堆栈跟踪,exception,stack-trace,velocity,Exception,Stack Trace,Velocity,如何使用velocity模板打印异常的完整堆栈跟踪 我当前的模板有$exception作为模板变量,它包含异常。如果您想在输出上显示跟踪,可以将evaluate方法包装在try-catch-finally块中。在catch中,向编写器写入堆栈跟踪或异常消息。在最后一节中,请刷新编写器 如果我没记错的话,是这样的: StringWriter w = new StringWriter(); try { Velocity.evaluate( context, w, "mystring", s

如何使用velocity模板打印异常的完整堆栈跟踪


我当前的模板有$exception作为模板变量,它包含异常。

如果您想在输出上显示跟踪,可以将evaluate方法包装在try-catch-finally块中。在catch中,向编写器写入堆栈跟踪或异常消息。在最后一节中,请刷新编写器

如果我没记错的话,是这样的:

StringWriter w = new StringWriter();
try {
    Velocity.evaluate( context, w, "mystring", s );
} catch (Exceptions... e)
    w.write(e.getMessage());
} finally {
    w.flush();
}

在速度方面,我就是这样解决这个问题的

#foreach ($i in [1..3]) #if($exception.Cause) #set($exception = $exception.Cause) #foreach($stack in $exception.getStackTrace()) $stack.toString() #end #end #end #foreach($i在[1..3]中) #if($exception.Cause) #设置($exception=$exception.Cause) #foreach($exception.getStackTrace()中的堆栈) $stack.toString() #结束 #结束 #结束
我想在html页面上显示异常,该页面将在测试开发模式下启用。但是,在生产模式下,开关不会自动显示错误。这个解决方案不适合我的情况。