我正在使用Play!Framework 1.2.5。我想以定制的方式处理游戏框架中的所有错误。例如,如果出现路由错误,我想显示适当的错误消息,而不是显示整个路由文件。同样对于其他错误,我想显示我自己的错误页面。这个怎么做?
问问题
1731 次
2 回答
2
errors
您可以通过在 package.json上创建新的子包来定义自己的错误页面views
。在这个子包中,您可以使用错误代码名称为您的自定义错误页面创建模板文件,例如:
404.html
对于未找到错误页面403.html
禁止错误页面500.html
内部服务器错误页面- ETC...
不用担心默认路由未找到错误页面,它仅在开发模式下显示以帮助开发阶段。在生产模式下,不会显示此错误页面(默认框架错误页面)。
- 更新
此@Catch
注释可能对处理其他类型的异常有用。它充当控制器中操作的拦截器,如果在执行某些操作时发生异常,它将处理异常。请注意,此注释仅适用于Controller类。
请在此处查看文档以进一步阅读。
于 2013-03-18T10:47:32.930 回答
2
我们需要比@iwawiwi 提到的更多的控制来确定数据库抛出了什么数据库约束消息。这是通过在类中使用带有这样@Catch
注释的方法来解决的Controller
:
@Catch(value=PersistenceException.class)
public static void handleException(PersistenceException exception) {
..
}
我以前没有听说过那个注释,这在我的情况下效果很好。
对于缺失的路线,我们也在其中添加了一些内容Controller
:
@Catch(value=ActionNotFoundException.class)
public static void catchRouteNotFound(ActionNotFoundException exception) {
String referer = session.get("referer");
Logger.error("ActionNotFoundException, referer: %s", referer);
Logger.error("Exception: %s", exception);
}
通过这种方式,我们可以找出应用程序中丢失的路线/错误的链接。
于 2013-03-18T15:32:03.080 回答