如何在java和freemarker中只显示错误消息,而不显示完整的堆栈跟踪?
我用java编写了以下代码:如何在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=
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 -->
<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的解决方案。谢谢大家!干杯!!