Что произойдет, если обе catch и finally бросить исключение?
Что произойдет, если обоих блоках catch и finally бросить исключение?
5 ответов:
Когда блок
finally
создает исключение, он эффективно скроет исключение, созданное из блокаcatch
, и будет в конечном итоге брошено исключение. Поэтому важно либо регистрировать исключения при перехвате, либо убедиться, что блок finally сам не создает исключения, иначе вы можете получить исключения, которые будут подавлены и никогда не будут замечены.
Когда catch создает исключение, блок finally будет запущен, а затем завершится с исключением. Если блок finally создает исключение, блок завершится с исключением.
На него уже хорошо ответил адрианбанкс, но следующий пост должен быть интересным: интересные результаты исключения: выбрасывание исключений из блока Finally
Привет Nwaman я думаю, что вы ответите неправильно я протестировал его в 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"); }
И это не приведет в конечном итоге к тому, чтобы возразить,