E2093 L'étiquette '%s' n'est pas déclarée dans la procédure en cours (Delphi)

De RAD Studio
Aller à : navigation, rechercher

Remonter à Messages d'erreur et d'avertissement (Delphi)

Au contraire du Pascal standard, le langage Delphi de Borland n'autorise pas un goto à sortir de la procédure courante.

Cependant, cette construction étant principalement utilisée pour la gestion des erreurs, le langage Delphi fournit un mécanisme pour traiter les erreurs plus général et plus structuré : la gestion d'exception.


program Produce;

label 99;

procedure MyProc;
begin
  (*Something goes very wrong...*)
  goto 99;
end;

begin
  MyProc;
  99:
    Writeln('Fatal error');
end.

Cet exemple essaie d'arrêter le calcul en effectuant un goto non local.


program Solve;

uses SysUtils;

procedure MyProc;
begin
  (*Something goes very wrong...*)
  raise Exception.Create('Fatal error');
end;

begin
  try
    MyProc;
  except
    on E: Exception do Writeln(E.Message);
  end;
end.

Dans notre solution, nous avons utilisé le gestionnaire d'exception pour arrêter le programme. Ceci présente l'avantage que nous pouvons aussi transmettre un message d'erreur. Une autre solution consisterait à utiliser les procédures standard Halt ou RunError.