Как работают исключения (за кулисами) в C #

Идентично « Как работают исключения (за кулисами) в C ++ », но для C # .

Я знаю что следующие шаги должны быть выполнены при возникновении исключения.

  1. Найти ближайший обработчик для типа исключения;
  2. Размотать стек до уровня обработчика;
  3. Вызвать обработчик;
  4. Найти и вызывать каждые finally блоки.

Как это сделать. NET обрабатывает эти операции? Как работает сопоставление «текущих» обработчиков? Сколько кода испускается в блоке try / catch? А в блоке throw?

19
задан Community 23 May 2017 в 12:10
поделиться