2014-08-31 68 views
0

在我的grails控制器或服务的内部,某些事情正在抛出一个例外(我假设)。结果是网页只显示“发生了错误”,这没有多大帮助。grails输出“发生错误”,如何显示实际错误?

关于grails的一个奇怪的事情是它似乎没有抛出任何异常,所以我不能放入try/catch并执行诸如记录错误或向堆栈发送带有堆栈跟踪的显式错误消息给用户。

任何想法如何用grails完成这个任务?当我搜索时,不幸的是,我只能找到显示验证错误的信息。我相信有一个简单的方法!

因为我不知道实际发生了什么样的异常,或者为什么我需要用堆栈跟踪来捕获和显示任何异常。

回答

1

好的,答案其实很简单。你只需要在你的视图的根目录下创建一个error.gsp文件,使用下面的代码(除了env之外,还会输出除外:

<!DOCTYPE html> 
<html> 
    <head> 
     <title><g:if env="development">Grails Runtime Exception</g:if><g:else>Error</g:else></title> 
     <meta name="layout" content="main"> 
     <g:if env="development"><link rel="stylesheet" href="${resource(dir: 'css', file: 'errors.css')}" type="text/css"></g:if> 
    </head> 
    <body> 
    <h2>Time: <g:formatDate format="yyyy-MM-dd hh:mm:ss" date="${new Date()}"/> </h2> 
     <g:renderException exception="${exception}" /> 

    </body> 
</html>