Ваш блок PL / SQL будет перехватывать каждое исключение и обрабатывать его, просто выполняя откат.Если вы хотите, чтобы вызывающая сторона знала, что произошла ошибка, вы, скорее всего, захотите просто удалить обработчик исключений.
Вы также можете включить явный RAISE или RAISE_APPLICATION_ERROR в ваш обработчик исключений, но это не кажется особенно полезным.Поскольку сценарий SQL * Plus уже реагирует на ошибку путем отката транзакции, перехват и повторное генерирование вашего исключения в цикле PL / SQL не изменяет никакого поведения.Все, что он делает, - это скрывает фактический номер строки и стек вызовов, которые связаны с ошибкой, и затрудняет отладку ошибок.
В общем, если вы не можете обработать ошибку, нет смысла ее перехватывать.,Точно так же, если вам нужен WHEN OTHERS, то вы почти наверняка не сможете обработать ошибку и не должны ее сначала отлавливать.Теперь, если вы действительно перехватываете ошибку, регистрируете ошибку и весь стек вызовов в таблице ошибок и повторно генерируете пользовательскую ошибку, которая более значима, чем ошибка Oracle, тогда WHEN OTHERS может быть разумным.