如何捕捉com.microsoft.sqlserver.jdbc.SQLServerException:查询已超时

How to catch com.microsoft.sqlserver.jdbc.SQLServerException: The query has timed out

我在 MS-SQL 中有一些存储过程,我想在出现超时问题时执行某些代码。我做了一些我想分享的事情:

catch (Exception e) {
boolean bool = e.getClass().equals(SQLServerException.class);
  if(bool){
  //-- My piece of code logic
 }
}

我的问题是,我想在只有

的情况下执行我的代码
    com.microsoft.sqlserver.jdbc.SQLServerException: The query has timed out

如何捕获特定的超时异常?

可以使用case查看异常中的错误码

catch (SQLException se) {
        switch (se.getErrorCode()) {
        case 1:  doSomething();
            break;
        case 2:  doSomethingElse();
            break;
    }
}

错误代码列表在这里 https://docs.microsoft.com/en-us/azure/sql-database/sql-database-develop-error-messages

刚刚得到解决我问题的解决方案:

catch(Exception e){
 boolean bool = e.getMessage().contains("The query has timed out");
 if(bool){
   //-- My piece of code logic
  }
}