Кто-нибудь знает статью о деталях или макете памяти для дескриптора исключения в кадре стека?Как обработчик исключений регистрируется в кадре стека?
ответ
Детали реализации очень хорошо скрыты. Ни блог Брумме, ни исходный код ротора не дают готового ответа. Одна вещь, которую я знаю, это то, что оператор try не генерирует никакого кода. Это оставляет мало возможных подходов. Я думаю, что это делается так же, как SEH в 64-битной Windows.
Я считаю, что компилятор JIT генерирует таблицу кодовых адресов с указателем функции на фильтр исключения, который вызывается при обработке исключения. Оператор throw вызывает стек, который просматривает обратные адреса метода. Таблица отображает обратный адрес в соответствующий фильтр исключений. Фильтр исключений решает, соответствует ли исключение условию catch в методе. И передает управление в код в предложении catch. Примечательно, что оператор Visual Basic Catch When (недоступный на C#) хорошо сочетается с тем, как SEH реализован в Windows.
У меня нет доказательств этого и я не знаю какого-либо авторитетного источника. Это всего лишь вероятный способ его работы.
- 1. обработчик исключений
- 2. Как регистрировать трассировки стека исключений в Jetty?
- 3. Универсальный обработчик исключений
- 4. Обработчик IRQ не регистрируется
- 5. Обработчик исключений
- 6. Обработчик исключений в Node.js
- 7. Как распечатать трассировку стека исключений
- 8. Redirect Обработчик исключений Laravel
- 9. Laravel Отключить обработчик исключений
- 10. Общий обработчик исключений
- 11. Трассировка стека исключений Javascript
- 12. Java: Глобальный обработчик исключений
- 13. глобальный обработчик исключений - mule
- 14. EJB глобальный обработчик исключений
- 15. Глобальный обработчик исключений WPF
- 16. iOS - Глобальный обработчик исключений
- 17. Обработчик исключений на linux
- 18. Пользовательский обработчик исключений C#
- 19. Java: Обработчик исключений
- 20. WPF-глобальный обработчик исключений
- 21. Пользовательский обработчик исключений в Angular2
- 22. Глобальный обработчик исключений в angularjs
- 23. Один обработчик исключений для всех исключений класса
- 24. Angular2 - Как внедрить услугу в обработчик исключений
- 25. Как добавить глобальный обработчик/регистратор исключений в Mule
- 26. Один обработчик исключений для нескольких возможных исключений
- 27. logback: управление форматированием стека стека исключений
- 28. Как избежать стека исключений в корпусе ответа
- 29. Отображается только последняя строка трассировки стека исключений
- 30. Исключение не регистрируется автоматически при использовании специального обработчика исключений (set_exception_handler)
В чем заключен контекст? Не могли бы вы предоставить немного больше информации. –
Начните читать: http://blogs.msdn.com/cbrumme/archive/2003/10/01/51524.aspx –