#java #исключения
Суть проблемы следующая:
Есть класс, с большим количеством разных методов, с большим количеством вложенностей
(которые тоже полны методов). Многие из них могут вызвать эксепшены. Эксепшены не пробрасываются,
почти всегда обрабатываются на месте (выше обозначенного класса практически ни один
не выбрасывает).
Как с минимальным вмешательством в код выловить информацию о всех исключениях (вместе
со стеком)?
Возможно обернуть в другой класс? Если да, то как сделать что бы гарантированно я
мог узнать о всех эксепшенах?
Ответы
Ответ 1
Если нет возможности изменить исходный код или это очень сложно, то можно использовать модификацию байткода (bytecode instrumentation). Например с помощью библиотеки ASM и метода MethodVisitor.visitTryCatchBlock найти все блоки try\catch и модифицировать их таким образом, чтобы все исключения перед обработкой сохранялись в некоторую структуру данных или выводились в лог.
Комментариев нет:
Отправить комментарий