Что произойдет, если оба catch и finally блокируют исключение?
Что произойдет, если оба catch и finally блокируют исключение?
Ответ 1
Когда блок finally
генерирует исключение, он будет эффективно скрывать исключение, выведенное из блока catch
, и будет в конечном итоге выбрано. Поэтому важно либо лог исключений, когда поймано, либо убедиться, что блок finally сам не генерирует исключение, иначе вы можете получить исключения, которые задушены и никогда не видны.
Ответ 2
Когда catch выдает исключение, блок finally будет запущен, а затем выйдет с исключением. Если блок finally выдает исключение, блок выйдет с исключением.
Ответ 3
Выброшено последнее исключение.
Ответ 4
Его уже хорошо ответили adrianbanks, но следующая публикация должна быть интересной: Интересные результаты исключения: выброс исключений из блока finally
Ответ 5
HI Nwaman, я думаю, что вы ошибаетесь, я протестировал его в приложениях windows, я нашел, если вы напишите программу, как показано ниже.
try
{
string s = "hu";
int i = int.Parse(s);
}
catch (Exception ex)
{
string s = "hu";
int i = int.Parse(s);
throw new Exception();
}
finally
{
MessageBox.Show("hi");
}
и это не приведет, наконец, к тому, чтобы искупить,