1

我正在使用Play!Framework 1.2.5。我想以定制的方式处理游戏框架中的所有错误。例如,如果出现路由错误,我想显示适当的错误消息,而不是显示整个路由文件。同样对于其他错误,我想显示我自己的错误页面。这个怎么做?

4

2 回答 2

2

errors您可以通过在 package.json上创建新的子包来定义自己的错误页面views。在这个子包中,您可以使用错误代码名称为您的自定义错误页面创建模板文件,例如:

  1. 404.html对于未找到错误页面
  2. 403.html禁止错误页面
  3. 500.html内部服务器错误页面
  4. 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 回答