| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Общие вопросы по .NET и C# > Почему в using не вызывается Dispose |
| Автор: Stas123 16.12.2013, 17:06 | ||||
| Как вы думаете, почему при исключении в секции using не вызывается Dispose? освобождаемый класс
Использование
|
| Автор: jonie 16.12.2013, 22:06 |
| Почему это не вызывается? Разве что у вас неотлавливается исключение и приложение завершает работу самоубийством, но даже в этом случае Dispose будет вызван (правда уже после фатал эррор). UPD: finally блок (а стало быть и Dispose) может быть не вызван в случае необрабатываемого exception-а, подробнее смотри ниже в обсуждении. |
| Автор: Stas123 18.12.2013, 11:30 |
| Да, исключение не отлавливается и программа падает, но я не вижу, чтобы Диспоуз сработал. Т.е. файл не создается. Почему? У меня консольное приложение, по идее все идет в одном потоке. Или я не прав? |
| Автор: jonie 18.12.2013, 13:46 | ||
Все это описано же в описании языка:
А вот тут подробности: http://msdn.microsoft.com/ru-ru/magazine/cc793966.aspx |
| Автор: Stas123 19.12.2013, 11:43 |
| Ясно, спасибо. |