Обработка RAISE_APPLICATION_ERROR на стороне Java с использованием BC4J
Как я могу обработать ошибку, выданную со стороны базы данных с RAISE_APPLICATION_ERROR на стороне Java.
Я использую структуру BC4J и в этом ViewObject
используется для передачи данных в базу данных, поэтому код, из которого я устанавливаю данные, не выдает SqlException
следовательно, я не могу положить его в try..catch
,
ОБНОВИТЬ
Как мы можем справиться SQLException
быть воспитанным откуда-то еще. Мы не можем поставить try catch
заблокировать его как проверенное исключение и скомпилировать ошибку времени.
1 ответ
Предположим, вы подняли ошибку как:
raise_application_error(-2222, 'err message for -2222 error');
В JDBC
вызов этой хранимой процедуры, внутри catch
:
try {
//invoke stored-procedure
}catch(SQLException e) {
if(e.getErrorCode()==-2222) {
//handle error here, or convert to some specific error and use e.getMessage()
}
}
РЕДАКТИРОВАТЬ:
Я не использовал BC4J
но это JboException
тоже есть String getErrorCode()
, вы можете попробовать поиграть с этим..