Создаем портфолио за 1 месяц
К концу месяца: 4 классных проекта в вашем портфолио! Стоимость: 100$. Подробности...
⊗csSpIoEr 308 of 509 menu
◀ ▶

Ошибка ввода-вывода в C#

Класс IOException и производные (FileNotFoundException, EndOfStreamException) сообщают, что операция с потоком или файлом не удалась на уровне ввода-вывода. Это не логическая ошибка приложения, а отказ ресурса: файла нет или диск занят.

После Dispose повторная запись бросает ObjectDisposedException. Это другой тип, не наследник IOException: объект потока уже освобождён. В программе перехватывают конкретный тип и решают, повторять ли операцию.

Попробуем открыть несуществующий файл только для чтения без создания. FileMode.Open без файла даёт FileNotFoundException, наследник IOException. Путь должен отсутствовать в рабочей папке процесса:

using System.IO; try { using FileStream stream = new("missing.bin", FileMode.Open, FileAccess.Read); stream.ReadByte(); } catch (IOException) { Console.WriteLine(1); // выведет 1 }

Закройте MemoryStream через Dispose и перехватите исключение при Write; выведите 1.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить