捕获playframework中的数据库关闭异常

捕获playframework中的数据库关闭异常,playframework,ebean,playframework-2.3,Playframework,Ebean,Playframework 2.3,我想在数据库关闭或不存在时处理数据库错误,以捕获此错误,使应用程序不会崩溃,并使应用程序即使数据库关闭也能继续运行, 数据库关闭时出现错误: [错误]c.j.b.h.AbstractConnectionHook-无法获取到jdbc的连接:sqlite:db/dev.db休眠1000毫秒并重试。左:4。异常:null。消息:指向“db/dev.db”的路径:“/home/madian/workspace/mom/src/mom/db”不存在,您可以在app文件夹的Global.java文件中处理该

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


[错误]c.j.b.h.AbstractConnectionHook-无法获取到jdbc的连接:sqlite:db/dev.db休眠1000毫秒并重试。左:4。异常:null。消息:指向“db/dev.db”的路径:“/home/madian/workspace/mom/src/mom/db”不存在,您可以在app文件夹的Global.java文件中处理该错误

将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);
    }


}
导入play.Application;
导入play.GlobalSettings;
导入play.libs.F.Promise;
导入play.mvc.Result;
导入play.mvc.Http.RequestHeader;
公共类全局扩展全局设置{
@凌驾
公共void onStart(应用程序arg0){
//TODO自动生成的方法存根
super.onStart(arg0);
}
@凌驾
顶部公共无效(应用程序arg0){
//TODO自动生成的方法存根
super.onStop(arg0);
}
@凌驾
公共承诺onBadRequest(RequestHeader arg0,字符串arg1){
//TODO自动生成的方法存根
返回super.onBadRequest(arg0,arg1);
}
@凌驾
公共承诺onError(请求头arg0,可丢弃arg1){
//TODO自动生成的方法存根
返回super.onError(arg0,arg1);
}
}

在OneError方法中,您将从应用程序接收可丢弃的对象并可以处理它。

您可以在
全局
类中重写
onRequest
,并捕获此异常。