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