在播放框架中捕获数据库异常 [英] Catch DB down exception in playframework
问题描述
我想在数据库关闭或不存在时处理数据库错误,以捕获此错误,以使应用程序不崩溃并使应用程序即使数据库关闭也可以继续运行, DB关闭时错误增加:
I want to handle DB errors when DB are down or not exists,to catch this error in order to make application not crashing and make application keep running even the DB down, error raise when DB is down:
[错误] c.j.b.h.AbstractConnectionHook-无法获取与jdbc:sqlite:db/dev.db的连接睡眠1000ms,然后重试.剩余尝试次数:4.异常:null.Message:"db/dev.db"的路径:"/home/madian/workspace/mom/src/mom/db"不存在
[error] c.j.b.h.AbstractConnectionHook - Failed to acquire connection to jdbc:sqlite:db/dev.db Sleeping for 1000ms and trying again. Attempts left: 4. Exception: null.Message:path to 'db/dev.db': '/home/madian/workspace/mom/src/mom/db' does not exist
推荐答案
您可以在应用程序文件夹中的Global.java文件中处理该错误
That Error you can handle in Global.java file in app folder
将这样一个文件Global.java放入应用程序文件夹中
put a file which Global.java in app folder like this
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对象并可以对其进行处理.
in onError method you will receive the Throwable object from the application and can handle it.
这篇关于在播放框架中捕获数据库异常的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!