Den try-Block erstellen

Aus RAD Studio
Wechseln zu: Navigation, Suche

Nach oben zu Geschützte Blöcke definieren

Der erste Teil eines geschützten Blocks besteht aus dem try-Block. Der try-Block enthält Quelltext, der potenziell eine Exception auslösen kann. Die Exception kann entweder direkt durch den im try-Block enthaltenen Code oder durch Code ausgelöst werden, der von im try-Block enthaltenen Anweisungen aufgerufen wird. Rufen Anweisungen im try-Abschnitt also eine Routine auf, für die keine Exception-Behandlungsroutine definiert ist und löst diese Routine eine Exception aus, dann wird die Ausführung zur Behandlung der Exception an die dem try-Block zugehörige Exception-Behandlungsroutine zurückgegeben. Beachten Sie, dass die Ursache einer Exception nicht in der Anwendung liegen muss. Der Aufruf einer RTL-Routine oder einer anderen Komponente kann ebenfalls eine Exception in der Anwendung auslösen.

Das folgende Beispiel zeigt, wie eine durch ein TFileStream-Objekt ausgelöste Exception abgefangen wird.

 procedure TForm1.Button1Click(Sender: TObject);
 var
   fileStream: TFileStream;
 begin
      try
         (* Versuch, nicht vorhandene Datei zu öffnen *)
         fileStream := TFileStream.Create('NOT_THERE.FILE', fmOpenRead);
 								(* Dateiinhalt verarbeiten... *)
         fileStream.Free;
      except
         on EFOpenError do ShowMessage('EFOpenError Raised');
      else
         ShowMessage('Exception Raised');
      end;
 end;


Durch try-Blöcke wird Ihr Quelltext verständlicher. Statt Fehlerbehandlungscode im gesamten Programm zu verstreuen, fassen Sie ihn in Exception-Behandlungsroutinen zusammen, wodurch der Programmablauf deutlicher wird.

Dies trifft insbesondere dann zu, wenn komplizierte Berechnungen ausgeführt werden, die Hunderte von Berechnungsschritte umfassen, von denen jeder Einzelne im Fall einer ungültigen Eingabe scheitern kann. Mit Exceptions können Sie den eigentlichen Ausdruck für einen Algorithmus definieren und anschließend den Code für die Ausnahmefälle bereitstellen, in denen dieser Code nicht zur Verarbeitung ausreicht. Ohne Exceptions müssen Sie dagegen jedes Mal die Eingabe testen, um sicherzustellen, dass der nächste Schritt in der Berechnung ausgeführt werden kann, ohne Fehler auszulösen.

Einzelheiten zum Auslösen von Exceptions aus try-Code-Blöcken finden Sie unter Exception auslösen.

Siehe auch