Если у меня есть 3 класса с именем A, B, C, и все исключения централизованы в классе A, а A является родительским классом, B - это дочерний класс A, а C является дочерним классом B. now, если какое-либо приложение определенное исключение происходит в классе C, тогда он бросает это исключение в класс B, а класс B бросает класс A, чтобы сделать исключение централизованным. Теперь как мы можем получить Exception Trace в классе A, который активируется классом C.централизовать обработку excpetion
ответ
Вы может получить стек и узнать его, Throwable#getStackTrace()
предоставляет информацию о стеке в виде массива элементов трассировки стека, каждый из которых представляет один стек кадра.
Ans this StackTraceElement
содержит LineNumber, имя метода, имя класса, в котором он был выполнен. Таким образом, вы сможете узнать, где он действительно брошен.
Простой. Определить метод, который может обрабатывать исключение в родительском классе А.
В производных классах,
public void method(){
try{
//code
}catch(Exception e){
super.catchExceptionMethod(e);
}
}
Прежде всего, старайтесь избегать проверенные исключения, если вы можете, для чего, кроме тех случаев, когда вы на самом деле что-то сделать иначе об исключении, чем просто прервать текущую единицу работы и зарегистрировать ошибку.
Во-вторых, вы должны обернуть любой кусок кода, который излучает проверяемое исключение вне вашего контроля с
try {
...
} catch (RuntimeException e) { throw e; }
catch (Exception e) { throw new RuntimeException(e); }
В противном случае, если нет проверяемые исключения, связанные, просто ничего не поймать и исключение автоматически распространяется вверх до централизованного места обработки.
И, наконец, если вы сделаете так, как описано, у вас всегда будет сохранена исходная трассировка стека: либо непосредственно в пойманном исключении, либо в исключении, которое может быть получено .getCause()
. Если вы просто сделаете printStackTrace()
или log.error("error", e)
, вы получите целую цепочку причин автоматически.
- 1. Есть ли способ централизовать предварительную обработку всех журналов, созданных монологом?
- 2. InvalidCiphertext excpetion
- 3. Уплотненный excpetion
- 4. Excpetion Обращение с NativeAcitivity
- 5. Trap remove-item excpetion
- 6. Phalcon excpetion модель п.д.о. первую
- 7. Вне границ excpetion on subarray
- 8. marshal.PtrToStructure нарушение прав доступа excpetion
- 9. Централизовать логику проверки Aurelia
- 10. Централизовать оповещение в Android
- 11. Как централизовать сетки Bootstrap
- 12. Как централизовать div crossbrowser
- 13. Как централизовать левый навигатор
- 14. Как централизовать заголовок QTreeWidget
- 15. используя события централизовать информацию
- 16. Как централизовать элементы
- 17. Централизовать изображения в Bootstrap
- 18. Как централизовать кнопку div
- 19. Централизовать ресурсы для решения
- 20. Невозможно централизовать анимацию (libGdx)
- 21. Bootstrap: централизовать элементы ряда
- 22. Symfony централизовать код
- 23. Централизовать h2 внутри div?
- 24. Централизовать конфигурацию Eclipse
- 25. Централизовать механизм журнала
- 26. Централизовать глобальные переменные php?
- 27. Как централизовать навигационную панель
- 28. Исключительная ссылка excpetion с использованием phpunit selenium
- 29. C# и WPF, ShowFIleDialog бросить excpetion
- 30. Активность не найден Excpetion in Eclipse ADT
Не могли бы вы предоставить какой-то код, излагающий проблему? Ваше описание немного запутанно. – Henrik
http://stackoverflow.com/a/11925477/139010 –