【问题标题】:Catch DB down exception in playframework在 playframework 中捕获 DB 异常
【发布时间】:2014-12-04 15:05:40
【问题描述】:

我想在数据库关闭或不存在时处理数据库错误,以捕获此错误以使应用程序不会崩溃并使应用程序即使在数据库关闭时也能继续运行, DB 关闭时引发错误:

[错误] c.j.b.h.Abs​​tractConnectionHook - 无法获取到 jdbc:sqlite:db/dev.db 的连接 休眠 1000 毫秒并重试。剩余尝试:4. 异常:null.Message:'db/dev.db' 的路径:'/home/madian/workspace/mom/src/mom/db' 不存在

【问题讨论】:

  • 您可以在 Global 类中覆盖 onRequest 并捕获此异常。

标签: playframework ebean playframework-2.3


【解决方案1】:

您可以在 app 文件夹中的 Global.java 文件中处理该错误

像这样在app文件夹中放一个Global.java的文件

Global.java 文件

import play.Application;
import play.GlobalSettings;
import play.libs.F.Promise;
import play.mvc.Result;
import play.mvc.Http.RequestHeader;


public class Global extends GlobalSettings {

    @Override
    public void onStart(Application arg0) {
        // TODO Auto-generated method stub
        super.onStart(arg0);
    }

    @Override
    public void onStop(Application arg0) {
        // TODO Auto-generated method stub
        super.onStop(arg0);
    }
    @Override
    public Promise<Result> onBadRequest(RequestHeader arg0, String arg1) {
        // TODO Auto-generated method stub
        return super.onBadRequest(arg0, arg1);
    }

    @Override
    public Promise<Result> onError(RequestHeader arg0, Throwable arg1) {
        // TODO Auto-generated method stub
        return super.onError(arg0, arg1);
    }


}

在 onError 方法中,您将从应用程序接收 Throwable 对象并进行处理。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-04-04
    • 2010-10-03
    • 2012-07-10
    • 1970-01-01
    • 2011-05-29
    • 2011-07-02
    • 2021-08-19
    相关资源
    最近更新 更多