【发布时间】:2026-01-25 09:45:01
【问题描述】:
如果你把它放在控制器动作中:
def inner = new RuntimeException("inner")
def middle = new Exception("middle", inner)
def outer = new IllegalArgumentException("outer", middle)
throw outer
Grails 的错误调试页面(最重要的是日志)只会显示内部异常类及其消息:
错误 500:内部服务器错误
URI: /...
类: java.lang.RuntimeException
消息: 内部
这是有问题的,因为当您选择使用更具描述性的消息来包装异常时,大多数时候外部消息在调试问题时更为重要。
实际上,在原因链中包含所有异常以及它们的类名、消息和堆栈跟踪会很有用,就像常规 Java 所做的那样。
我自己尝试在错误页面中打印异常,但剥离发生在调用错误视图之前。
是否有可以改变这种行为的配置参数?
编辑:我有 posted a bug 和 started a mailing list thread,但到目前为止我还没有找到解决方法,甚至没有找到 Grails 源代码中发生这种剥离的位置。
【问题讨论】:
标签: exception grails groovy error-handling