Leider enthält das Erstellen von Anwendungen das Codieren. 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 fehlerhaften 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.
Fehler, Ausnahmen?
Eine Ausnahme ist im Allgemeinen eine Fehlerbedingung oder ein anderes Ereignis, das den normalen Ausführungsfluss in einer Anwendung unterbricht. Immer wenn ein Fehler aus der Verarbeitung einer Codezeile resultiert, erstellt (löst) Delphi einen Objektnachkommen aus TObject aus, der als Ausnahmeobjekt bezeichnet wird.
Bewachte Blöcke
Eine Anwendung reagiert auf eine Ausnahme, indem sie entweder einen Beendigungscode ausführt, die Ausnahme behandelt oder beides. Um die Fehler- / Ausnahmeüberwachung in einem bestimmten Code zu aktivieren, muss die Ausnahme in einem geschützten Anweisungsblock auftreten. Der allgemeine Code sieht folgendermaßen aus:
Versuchen. {bewachter Codeblock} außer. am fang an. {Ausnahmeblock behandelt SomeException} end; Ende;
EIN versuche / außer Anweisung 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 nach dem Schlüsselwort end übergeben.
Beispiel:
... Null: = 0; Versuchen. Dummy: = 10 / Null; außer. auf EZeroDivide tun. MessageDlg ('Kann nicht durch Null teilen!', Mttrror, [mbOK], 0); Ende;...
Ressourcen schützen
Wenn ein Codeabschnitt eine Ressource erwirbt, muss häufig sichergestellt werden, dass die Ressource erneut freigegeben wird (oder Sie erhalten möglicherweise eine Speicherleck), 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 Schlüsselwort und sieht aus wie:
{Code zum Zuweisen von Ressourcen} Versuchen. {bewachter Codeblock} schließlich. {Kündigungsblock - Code zum Freigeben von Ressourcen} Ende;
Beispiel:
... AboutBox: = TAboutBox. Create (nil); Versuchen. AboutBox. ShowModal; schließlich. AboutBox. Freisetzung; Ende;...
Anwendung. OnException
Wenn Ihre Anwendung den Fehler, der die Ausnahme verursacht hat, nicht behandelt, verwendet Delphi den Standard-Ausnahmebehandler. Es wird lediglich ein Meldungsfeld angezeigt. Sie können Code in das OnException-Ereignis für das TApplication-Objekt schreiben, um Fehler auf Anwendungsebene abzufangen.
Pause bei Ausnahmen
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.
Einige letzte Worte
Die Idee dieses Artikels ist es, Ihnen einen kurzen Überblick über die Ausnahmen zu geben. Weitere Informationen zur Ausnahmebehandlung finden Sie unter Informationen zum Umgang mit Ausnahmen bei der Behandlung von Delphi-Ausnahmenmit einem Werkzeug wie Delphi Crash / Exception Handling mit Bug Reporting und einige der folgenden verwandten Artikel: