Как правильно обрабатывать
SQL
ошибки
SQLException
?
В
SQLException
есть метод
getSQLState
, который отвечает в виде кодов
42P01
,
08003
Эти коды являются постоянными и при обработке ошибки стоит ссылаться на них?
Соединение с БД
08003
-
Connection to localhost:5400 refused.
или
This connection has been closed.
Неправильный запрос
42P01
-
ERROR: relation "userz" does not exist
catch(SQLException ex) {
System.out.println("SQLException ex: " + ex);
System.out.println("SQLException: " + ex.getSQLState());
// таким образом обрабатывается ошибка подключения к БД, ссылаясь на значение ex.getSQLState()?
if(ex.getSQLState().equals("08003")) {
removeConnection();
}
}
На стековерфлоу приводится пример с
equals
https://stackoverflow.com/questions/26383624/postg...
final String ss = ex.getSQLState();
if (ss.equals("40001") || ss.equals("40P01"))
А в одной из статей сравнение по ссылке
https://www.sohamkamani.com/java/jdbc-postgresql/
String errorCode = e.getSQLState();
// 08000 - connection_exception
if (errorCode == "08000") {}
Здесь выбор вкуса или какое-то решение правильнее?
Так же у них коды почему-то отличаются от моих