Ако правите catch (Exception e) , message трябва да е достъпен от e.getMessage() .
Ако правите catch (SQLException e) (или какъвто и да е типът изключение за вашия пакет за достъп до данни) message все още трябва да е достъпно от e.getMessage() . Освен това -20001 трябва да влезе в e.getErrorCode() . Имайте предвид, че може да се появи като абсолютна стойност (20001 за разлика от -20001 ); ще трябва да експериментирате.