Что произойдет, если и блоки, и, наконец, бросают исключение?

StackOverflow https://stackoverflow.com/questions/1482395

Вопрос

Что произойдет, если и блоки, и, наконец, бросают исключение?

Это было полезно?

Решение

Когда 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");
}

И это не приведет к тому, что он, наконец, приведет к избытке,

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top