如何知道SQLException是由于数据库连接失败

时间:2014-05-12 10:43:52

标签: java exception-handling

在我的java应用程序中,由于数据库连接失败,日志文件包含大量SQLException跟踪。每5秒后尝试一次。所以我必须知道SQLException转到log是由于数据库连接失败还是由于sql查询中发生了一些错误。因此,如果数据库连接发生故障,并尝试记录超过3或4次,那么我可以限制在1分钟后写入.Log方法如下


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中是一个静态日期类型变量

1 个答案:

答案 0 :(得分:0)

您可以使用错误代码并将其检查为失败状态,如下所示

Exception e;
int errorCode = e.getErrorCode();
if(errorCode==4005)
{
//do whatever you want to do for failed connection
}