Класс CFileException
Класс CFileException предназначен для обработки исключительных ситуаций, возникающих во время создания или вызова методов класса CFile и порожденных от него классов. Этот класс описан нами в разделе “Класс CFile” и предназначается для работы с файловой системой. Естественно, при работе с файловой системой могут возникнуть самые разнообразные ошибки (исключительные ситуации): попытка открыть несуществующий файл, переполнение диска во время операции записи, ошибка чтения с диска и т. д.
Наибольший интерес для нас представляет элемент данных m_cause из класса CFileException. В него заносится код, по которому можно определить причину исключения.
Константа | Причина ошибки | ||
CFileException:: none | Без ошибки | ||
CFileException:: generic | Неопределенная ошибка | ||
CFileException:: fileNotFound | Файл не найден | ||
CFileException:: badPath | Задан несуществующий путь | ||
CFileException:: tooManyOpenFiles | Открыто слишком много файлов | ||
CFileException:: accessDenied | Доступ к файлу закрыт | ||
CFileException:: invalidFile | Использование неправильного идентификатора (дескриптора) файла | ||
CFileException:: removeCurrentDir | Попытка удалить текущий каталог | ||
CFileException:: directoryFull | Переполнение структуры каталогов. Невозможно создать новый каталог | ||
CFileException:: badSeek | Ошибка во время перемещения указателя файлов | ||
CFileException:: hardIO | Ошибка аппаратного обеспечения компьютера | ||
CFileException:: sharingViolation | Программа SHARE.EXE не загружена или общая область заблокирована (locked) | ||
CFileException:: lockViolation | Попытка заблокировать область файла, которая уже была заблокирована ранее | ||
CFileException:: diskFull | Нет свободного пространства на диске | ||
CFileException:: endOfFile | Достигнут конец файла |
Так как за взаимодействие приложения с файловой системной компьютера отвечает прежде всего операционная система, то в случае ошибки она возвращает соответствующий код. В состав класса CFileException входит элемент данных m_lOsError. В него заносится код ошибки, который вернула операционная система.