uses SysUtils; procedure ErrorProc; var I: Integer; begin I := 0; I := I div I; end; procedure TestExcept; var S: String; I: Integer; begin S := 'abc'; try ErrorProc; except on E:EDivByZero do begin writeln(S); S := E.Message; writeln(S); end; else begin writeln(456); end; end; end; begin TestExcept; writeln('ok'); end.
uses SysUtils; procedure ErrorProc; var I: Integer; begin I := 0; I := I div I; end; procedure TestFinally; var S: String; I: Integer; begin S := 'abc'; try ErrorProc; finally writeln(S); end; writeln('not executed'); end; begin try TestFinally; except writeln('ok'); end; end.