Zum Erstellen von Anwendungen gehört leider auch die Codierung. Unabhängig davon, wie sorgfältig Sie Ihr Programm schreiben / debuggen, ist es unmöglich, sich jede Situation vorzustellen, die schief gehen kann. Der unerfahrene Benutzer kann beispielsweise versuchen, eine nicht vorhandene Datei zu öffnen oder einen falschen Wert in ein Datenfeld einzugeben.
Benutzer machen Fehler und wir sollten bereit sein, diese Fehler zu behandeln / zu verhindern, wo und wann immer dies möglich ist.
Eine Ausnahme ist im Allgemeinen eine Fehlerbedingung oder ein anderes Ereignis, das den normalen Ausführungsfluss in einer Anwendung unterbricht. Immer wenn ein Fehler bei der Verarbeitung einer Codezeile auftritt, erstellt Delphi ein von TObject abgeleitetes Objekt, das als Ausnahmeobjekt bezeichnet wird.
Eine Anwendung reagiert auf eine Ausnahme, indem sie einen Beendigungscode ausführt, die Ausnahme behandelt oder beides. Damit die Fehler- / Ausnahmefunktion in einem bestimmten Code aktiviert werden kann, muss die Ausnahme in einem geschützten Anweisungsblock auftreten. Der allgemeine Code sieht wie folgt aus:
try geschützter Codeblock, außer an do begin Ausnahmeblock-Handles SomeException end; Ende;
EIN versuche es mit / except statement führt die Anweisungen im geschützten Codeblock aus. Wenn die Anweisungen ausgeführt werden, ohne dass Ausnahmen ausgelöst werden, wird der Ausnahmeblock ignoriert und die Steuerung an die Anweisung übergeben, die auf das Schlüsselwort end folgt.
Beispiel:
… Null: = 0; versuchen Sie Dummy: = 10 / Null; außer bei EZeroDivide do MessageDlg ('Kann nicht durch Null teilen!', mtError, [mbOK], 0); Ende;…
Wenn ein Codeabschnitt eine Ressource abruft, muss häufig sichergestellt werden, dass die Ressource erneut freigegeben wird (oder es kann zu einem Speicherverlust kommen), unabhängig davon, ob der Code normal ausgeführt wird oder durch eine Ausnahme unterbrochen wird. In diesem Fall wird die Syntax verwendet schließlich Stichwort und sieht aus wie:
etwas Code zum Zuweisen von Ressourcen versuchen Sie es mit geschütztem Codeblock endlich Beendigungsblock - Code zum Freigeben von Ressourcen end;
Beispiel:
… AboutBox: = TAboutBox.Create (nil); versuchen Sie AboutBox.ShowModal; endlich AboutBox.Release; Ende;…
Wenn Ihre Anwendung den Fehler, der die Ausnahme verursacht hat, nicht behandelt, verwendet Delphi den Standard-Ausnahmehandler. Es wird lediglich ein Meldungsfeld angezeigt. Sie können Code in das OnException-Ereignis für TApplication-Objekt schreiben, um Fehler auf Anwendungsebene abzufangen.
Wenn Sie ein Programm mit Ausnahmebehandlung erstellen, möchten Sie möglicherweise nicht, dass Delphi bei Ausnahmen unterbrochen wird. Dies ist eine großartige Funktion, wenn Delphi anzeigen soll, wo eine Ausnahme aufgetreten ist. Es kann jedoch ärgerlich sein, wenn Sie Ihre eigene Ausnahmebehandlung testen.
Die Idee dieses Artikels ist, Ihnen nur einen kurzen Überblick über die Ausnahmen zu geben. Weitere Informationen zur Ausnahmebehandlung finden Sie unter Informationen zur Behandlung von Ausnahmen in der Delphi-Ausnahmebehandlung mit einem Tool wie Delphi-Absturz / Ausnahmebehandlung mit Fehlerberichterstattung und einigen der folgenden verwandten Artikel: