Что произойдет, если и блоки, и, наконец, бросают исключение?
-
18-09-2019 - |
Вопрос
Что произойдет, если и блоки, и, наконец, бросают исключение?
Решение
Когда finally
Блок бросает исключение, оно будет эффективно скрыть исключение, брошенное из catch
Блок и будет тем, кто в конечном итоге брошен. Поэтому важно либо исключения, когда ловит, либо убедиться, что наконец -то блок сам не бросает исключение, в противном случае вы можете получить исключения, которые были задушены, которые удушаются и никогда не видели.
Другие советы
Когда Catch выбрасывает исключение, наконец -то Block будет запущен, а затем выйдет за исключением. Если наконец -то блок бросит исключение, блок выйдет за исключением.
Последнее исключение брошено.
На него уже хорошо ответили Adrianbanks, но следующий пост должен быть интересным:Интересные результаты исключения: бросание исключений из наконец -то блока
Привет, Нваман, я думаю, что вы ответите, неверно, я протестировал его в Windows AppliAction, я обнаружил, что если вы напишете программу, подобную ниже
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");
}
И это не приведет к тому, что он, наконец, приведет к избытке,