То, что я пытаюсь сделать, кажется нелогичным, но Java постоянно удивляет меня, поэтому я делаю попытку.
Я реализую приложение с помощью библиотеки ESAPI.Эта библиотека предоставляет свои собственные исключения.В дополнение к общеизвестному поведению исключений, эти исключения делают такие вещи, как автоматическая регистрация с log4j и предоставление информации модулю обнаружения вторжений.
Теперь я хочу использовать эти функции во всех частях моего приложения.Каждый раз, когда мой метод генерирует исключение, я не выбрасываю обычное исключение, а самодельное исключение, которое выходит из нового EnterpriseSecurityException.Работает как шарм.
Но что я могу сделать, если я использую метод, который вызывает обычное исключение?Допустим, я хочу прочитать файл, используя java.io.FileInputStream?Он не может найти файл и выдает исключение FileNotFoundException.К сожалению, FileNotFoundException не предоставляет возможности моих собственных исключений, поскольку он не расширяет EnterpriseSecurityException.
Есть ли в Java какой-либо прием для изменения исключений, которые выдает метод?Это звучит странно для меня, когда я пишу это, но, возможно, кто-то может найти решение.До сих пор у меня была единственная идея - поймать нормальное исключение, извлечь соответствующую информацию и создать новое исключение с ним.Но это кажется довольно грубым ...