|
|||
Создание собственного класса. while notEOF(F) doСоздание собственного класса Программист может создать собственный класс обработки исключений, объявив его потомком Exception или любого другого стандартного класса (этим другим чаще всего бывает класс EAbort). Объявление нестандартного класса имеет смысл только тогда, когда вам необходимо научить программу распознавать некорректные наборы данных и соответствующим образом на них реагировать. Пусть, например, в программе используется цикл ввода целочисленных значений из текстового файла, их проверки и преобразования. Проверка заключается в простом контроле неотрицательности очередного числа после ввода и его положительности после преобразования. Перед проверкой необходимо получить строку из файла (здесь может возникнуть ошибка EInOutError) и преобразовать ее в целую величину (здесь возможна ошибка EConvertError); после проверки осуществляется обработка величины, в процессе которой может возникнуть ошибка EIntError. Создадим новый класс EIntCheckError и будем возбуждать исключение этого класса приобнаружении ошибки в данных: type EIntCheckError = class(EAbort) end; var F: TextFile; S: String; k: Integer; begin ... try // Готовимся к работе: открываем файл AssignFile(F, FileName); Reset(F); // Здесь возможна ошибка EInOutError // Цикл ввода-контроля-преобразования while notEOF(F) do begin // Вводим символы очередного числа ReadLn(F,S); // Здесь возможна ошибка EInOutError // Преобразуем символы в число k := StrToInt (S); / / Здесь возможна ошибка EConvertError // Проверяем число
|
|||
|