Как напечатать трассировку стека исключения в скоростном шаблоне - PullRequest
2 голосов
/ 06 февраля 2009

Как напечатать полную трассировку стека исключения с использованием шаблона скорости

В моем текущем шаблоне в качестве переменной шаблона содержится $ исключение, которое содержит исключение.

Ответы [ 2 ]

1 голос
/ 11 марта 2009

По скорости я так решил эту проблему.

#foreach ($i in [1..3])     
   #if($exception.Cause)
           #set($exception = $exception.Cause)
           #foreach($stack in $exception.getStackTrace())
               $stack.toString()
           #end     
    #end
#end
0 голосов
/ 06 февраля 2009

Если вы хотите отобразить трассировку на выходе, вы можете заключить метод оценки в блок 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();
}
...