Допустим, у меня есть около ста классов с этой сигнатуры метода, который является единственным способом входа выхода для этого класса:
Как сделать обработку общего Exception
public Map<String,Object> doSome(Map arg1, map arg2)
и в теле метода есть попытка/catch. Блокировка блокирует исключение и отменяет настраиваемое исключение. Раньше программа просто оставалась в блоке catch. Теперь мне нужно вернуть карту, которая имеет ключевое значение («Исключение», «Некоторые пошли в этом классе плохо»). Один из способов сделать это - сделать дополнительный метод в этом методе doSome (и вставить текущий код в новый) и объединить этот вызов метода с try/catch и в блоке catch поймать настраиваемое исключение и написать общий метод для заполнения возвращаемой карты
Что было бы лучшим способом достичь этого для всех 100 классов?
Мне интересно, можно ли достичь такой цели с помощью Spring AOP? Но большинство весенних советов, с которыми я сталкиваюсь, не позволяют возвращать ценности (это означает, что элемент управления никогда не возвращается к тому месту, откуда было исключено исключение).
Было бы здорово, если бы кто-нибудь мог указать мне на конкретные примеры.
немногим более 100. * Действительно *. :) Все эти классы являются частью кодовой базы, которая используется/называется внешней инфраструктурой. Таким образом, эти классы уже расширяют класс этой структуры. Так что это не вариант – happybuddha
@happybuddha Может ли родительский класс не расширять класс фреймворка? –
печально нет. Это существующее приложение (которое неожиданно завершает все в блоке catch), и гибкость таких изменений меньше. – happybuddha