我一直在网上搜索我面临的问题很长一段时间了。我找到了面对它的人,但无法找到解决问题的合适方案。问题是处理template.gsp
中发生的任何异常的最佳方法是什么?我知道我可以在那里使用try-catch
,以便我的控制器不会得到例外,但我确实发现有人说这不是一个好习惯,但未能回答原因。那么这是一种错误的方式,如果是,那么还有更好的解决方案来处理这个问题吗?
答案 0 :(得分:4)
正确的方法是使用500错误处理程序:http://grails.org/doc/latest/guide/theWebLayer.html#mappingToResponseCodes
如果您的视图中有很多可能产生错误的逻辑,请考虑将代码重构为可以包含更好的错误处理的标记库
答案 1 :(得分:0)
这取决于您的应用程序对错误的行为。
如果通用错误页面适用于应用程序 - 则在URL映射中设置错误页面并忽略控制器中的错误。
您是否需要一个特定于该情况的好的自定义错误 - (或者可能显示备用页面?),如果是这样,那么您需要尝试捕获(或者使用URL映射和创建一些乐趣)错误控制器)。 Exception handling in Grails controllers中出现的异议出现在控制器中错误处理与应用程序其余部分所需的代码量之间 - 错误处理代码约为每种控制器方法的40%。这会导致代码看起来很糟糕/臃肿(显然违反了CodeNarc" CatchException"规则)。