如何只显示错误消息,而不是java和freemarker中的完整堆栈跟踪?

时间:2011-05-30 05:43:09

标签: java html freemarker

我在java中有这个代码:

try{
   //some code here.. .
} catch (Exception e) {
   message = "Error occurred : " + e.getCause();
   throw e;
}

在freemarker中:

<table width="1238" cellpadding="0" cellspacing="0" align="center">
  <tr>
    <td align="center" class="Fontmost">
      <p><@ww.property value = "message"/> <!-- message from java -->
    &nbsp;
    <br />
    <br />
      </p>
    </td>
  </tr>
</table>

我正在维护的应用程序的最后一个开发人员使用e.getCause()而不是e.getMessage()。目前,我们只需要异常消息,因为e.getCause()在页面中打印整个堆栈跟踪。有没有办法只通过修改freemarker代码来显示异常消息?,因为我们的java代码中的所有类和模块都使用e.getCause(),如果我们将e.getCause()修改为e.getMessage(),我们有40个模块需要更改{{1}}。

我感谢你们的帮助。

提前致谢。

3 个答案:

答案 0 :(得分:2)

我建议您将异常本身添加到模型中(例如,在名称“exception”下)并在模板中使用它:exception.messageexception.cause.message,具体取决于您想要的异常。

答案 1 :(得分:0)

message.message

帮助?这将访问getMessage()函数。

答案 2 :(得分:0)

不幸的是,消息是字符串类型!如果它是message = e.getCause();而不是message = "Error occurred : " + e.getCause();,那么Daniel的答案将是解决方案。