Jeśli robisz catch (Exception e) , message powinien być dostępny z e.getMessage() .
Jeśli robisz catch (SQLException e) (lub jakikolwiek typ wyjątku jest dla twojego pakietu dostępu do danych) message powinien być nadal dostępny z e.getMessage() . Dodatkowo -20001 powinien przejść w e.getErrorCode() . Zauważ, że może dojść jako wartość bezwzględna (20001 w przeciwieństwie do -20001 ); będziesz musiał poeksperymentować.