|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
14.09.2009, 16:52 | #1 |
Старожил
Регистрация: 06.08.2009
Сообщений: 2,992
|
Зачем нужен finally?
Есть разница - поместить код в блок finally или просто после блока catch?
|
14.09.2009, 16:58 | #2 |
Участник клуба
Регистрация: 03.05.2007
Сообщений: 1,189
|
Мне кажется, что разница только в стиле написания.
|
14.09.2009, 17:23 | #3 |
Старожил
Регистрация: 06.08.2009
Сообщений: 2,992
|
А второй вариант - это дурной тон?
|
14.09.2009, 17:31 | #4 | |
Участник клуба Подтвердите свой е-майл
Регистрация: 14.12.2007
Сообщений: 1,434
|
Цитата:
Проповедую design patterns, верую в MVC, доверяю eXtrime programming.
|
|
14.09.2009, 17:32 | #5 |
Eclipse Foundation
Старожил
Регистрация: 19.09.2007
Сообщений: 2,604
|
Нет, не дурной тон, и разница есть.
Блок finally сделан для того, чтобы если вылетело исключение в блоке try - catch и нужно вернуться на уровень выше, код в блоке finally выполнялся всегда. То есть даже если вылетит исключение и вы не сможете обработать его в catch - блок finally выполнится. Пример из жизни: 1. Открываем файл 2. Читаем 3. При чтении получаем исключение 4. В блоке finally закрытие файла. В следствие чего файл закроется, если вылетит исключение и программа рухнет или программист забудет обработать это исключение. |
14.09.2009, 18:04 | #6 |
Участник клуба
Регистрация: 03.05.2007
Сообщений: 1,189
|
Многое зависит от того, как ты обработаешь ошибку. Можно и без выхода на верхний уровень.
|
14.09.2009, 19:03 | #7 |
Eclipse Foundation
Старожил
Регистрация: 19.09.2007
Сообщений: 2,604
|
|
14.09.2009, 19:12 | #8 |
Участник клуба
Регистрация: 03.05.2007
Сообщений: 1,189
|
|
14.09.2009, 19:34 | #9 | |
Eclipse Foundation
Старожил
Регистрация: 19.09.2007
Сообщений: 2,604
|
Никакого холивара - каждый изъясняет свою точку зрения.
Цитата:
|
|
15.09.2009, 12:09 | #10 | |
Старожил
Регистрация: 06.08.2009
Сообщений: 2,992
|
То есть, как я понял, различие появляется, если есть два вложенных блока try. Тогда такой вопрос.
Цитата:
Код:
Код:
Если инициализировать FStream значением null, то при исключении програма вылетает с ошибкой. Последний раз редактировалось ds.Dante; 15.09.2009 в 12:14. |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
.NET, зачем он нужен? | Qousio | Базы данных (ADO.NET, LinqToSql, ORM Entity Framework, NHibernate) | 80 | 18.12.2009 23:42 |
Зачем нужен void? | Сергей089 | Общие вопросы C/C++ | 7 | 23.03.2009 17:08 |
Зачем живем? | Simply-Art | Свободное общение | 6 | 16.10.2008 15:44 |
Зачем указателю тип? | Scratch | Общие вопросы C/C++ | 5 | 30.09.2008 11:48 |
Зачем принтеру процессор? | Иллидан | Компьютерное железо | 6 | 21.05.2008 20:11 |