如何仅显示错误消息,而不是java和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个模块可以更改。 感谢您的帮助。 提前致谢。     

解决方法

        我建议您将异常本身添加到模型中(例如,名称为“ exception \”),并在模板中使用它:
exception.message
exception.cause.message
,具体取决于所需的异常。     ,        将
message.message
救命?这将访问getMessage()函数。     ,        不幸的是,消息是字符串类型!如果是ѭ11而不是ѭ12,则丹尼尔的答案就是解决方案。