在我的 java 应用程序中,由于数据库连接失败,日志文件中有大量 SQLException 跟踪。每 5 秒后尝试一次。所以我必须知道 SQLException 进入日志要么是由于数据库连接失败,要么是由于 sql 查询中发生了一些错误。这样,如果中间发生数据库连接失败并尝试记录三到四次以上,那么我可以将其限制为在1分钟后写入。记录方法如下
public static synchronized void log( Exception e, boolean forcePrint) { if(sqlExceptionLogTime!=null && e instanceof SQLException &&((new Date()).getTime()-sqlExceptionLogTime.getTime())<60000){ // do nothing }else if ( (forcePrint || debugFlag) && (logStream != null)) { e.printStackTrace(logStream); logStream.flush(); logcount++; if(e instanceof SQLException){ sqlExceptionLogTime = new Date(); } } }
在此sqlExceptionLogTime是一个静态日期类型变量
最佳答案
您可以使用错误代码并检查其是否存在失败情况,如下所示
Exception e;
int errorCode = e.getErrorCode();
if(errorCode==4005)
{
//do whatever you want to do for failed connection
}
关于java - 如何知道SQLException是由于数据库连接失败引起的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23606908/