Советы по Delphi

         

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


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

    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.

К сожалению (или к счастью), вы не можете вкладыть except & finally в блоки try. [001668]



Содержание раздела