Как перехватить com.microsoft.sqlserver.jdbc.SQLServerException: время запроса истекло - PullRequest
0 голосов
/ 25 января 2019

У меня есть некоторые из хранимых процедур в 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

Как это отловитьконкретное исключение таймаута?

Ответы [ 2 ]

0 голосов
/ 25 января 2019

Только что получил решение, которое решило мою проблему:

catch(Exception e){
 boolean bool = e.getMessage().contains("The query has timed out");
 if(bool){
   //-- My piece of code logic
  }
}
0 голосов
/ 25 января 2019

Вы можете использовать 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

...