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

如何在java和freemarker中只显示错误消息,而不显示完整的堆栈跟踪?,java,html,freemarker,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=

我用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个模块需要更改

我感谢你们的帮助

提前谢谢。

会的

message.message

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

不幸的是,消息的类型是string!如果是
message=e.getCause()而不是
message=“出现错误:”+e.getCause(),Daniel的答案就是解决方案。

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

您好!我尝试了你的解决方案,但不幸的是,我收到了一条空消息。但在控制台中,我看到了带有堆栈跟踪的消息:(很抱歉,我在这里帮不上忙。您好,我更改了所有模块以获取异常模型,而不是字符串。我遵循了Laurent Pireyn的解决方案。谢谢大家!干杯!!只需更改
“出现错误:“+e.getCause()
e.getCause())
而且会起作用。嗨,我更改了所有模块以获得异常模型而不是字符串。我遵循了Laurent Pireyn的解决方案。谢谢大家!干杯!!