скрыть

скрыть

  Форум  

Delphi FAQ - Часто задаваемые вопросы

| Базы данных | Графика и Игры | Интернет и Сети | Компоненты и Классы | Мультимедиа |
| ОС и Железо | Программа и Интерфейс | Рабочий стол | Синтаксис | Технологии | Файловая система |



Google  
 

Обработка исключительных ситуаций



Попробуйте эту схему. У меня это работает.


procedure part_of_starting_up(n: string....)
var
  f: typed file;
begin
  try
    try
      assign / reset(f, n);
      while not eof(f) do
        read_and_process_each_record(f);
    finally
{$I-} { Нет необходимости жаловаться, если закрытие прошло неудачно. }
      close(f);
{$I+}
    end;
  except
    on E: EInOutError do
      case e.ErrorCode of
        nn1: messagedlg('невозможно найти/открыть файл');
        nn2: messagedlt('ошибка чтения файла');
      end;
  end
  // (и т.д.)

Имейте в виду, что для типа функции, которую вы используете, вы получите одно и то же исключение с именем EInOutError. Чтобы узнать показываемое сообщение об ошибке, необходимо использовать errorcode.






Copyright © 2004-2016 "Delphi Sources". Delphi World FAQ




Группа ВКонтакте   Ссылка на Twitter   Группа на Facebook