Die sogenannte Ausnahme bezieht sich auf einen vorübergehenden Fehler, der durch Probleme im Programm selbst oder durch unsachgemäße Bedienung durch den Benutzer während der Ausführung des Programms verursacht wird.
Stoppen Sie die Programmausführung und führen Sie zu fehlerhaften Ergebnissen. Jeder, der Programme in Delphi geschrieben hat, wird sicherlich mit Ausnahmen vertraut sein. Quelle der Ausnahme
Es gibt viele Aspekte, die zu einer Ausnahme führen können. Wenn bei außergewöhnlichen Ereignissen keine geeigneten Maßnahmen ergriffen werden,
Eine unsachgemäße Handhabung kann zum Absturz des gesamten Programms führen. Glücklicherweise kann Delphi fast alle auftretenden Ausnahmen automatisch behandeln.
bewältigen.
1. Ein einfaches Beispiel für die automatische Behandlung von Ausnahmen durch Delphi
1. Wählen Sie in der integrierten Umgebung von Delphi (3.0) das Menü „Extras | Umgebungsoptionen“ und in der angezeigten Umgebung
Auf der Seite „PReferences“ im Fenster „Optionen“ (unten links) gibt es die Option „Bei Ausnahme unterbrechen“. Diese Option ist standardmäßig aktiviert
Der Status ist ausgewählt, sodass das Programm automatisch unterbrochen wird und zurückkehrt, wenn beim Ausführen des Programms in der integrierten Delphi-Umgebung eine Ausnahme auftritt
Im Delphi-Debugging-Status bleibt der Cursor auf dem Code, in dem die Ausnahme auftritt, sodass Programmierer ihn ändern können. Klicken Sie nun auf diese Option, um sie nicht verfügbar zu machen
Überprüfen Sie es und OK.
2. Erstellen Sie ein neues Projekt und speichern Sie es als Excep.dpr (es wird später nützlich sein) und speichern Sie die entsprechende Einheit als Excpunit.pas in Form1
Fügen Sie eine TmaskEdit-Komponente ein, setzen Sie deren EditMask-Eigenschaft auf Date, fügen Sie dann eine Tbutton-Komponente ein, doppelklicken Sie darauf,
Schreiben Sie das OnClick-Ereignis wie folgt:
procedure TForm1.BitBtn1Click(Sender: TObject);
var k:integer;
beginnen
k:=0;
k:=9 div k;{Hier wird eine Division durch 0-Ausnahme generiert}
Ende;
3. Speichern Sie das Programm und führen Sie es aus. Geben Sie einfach eine oder zwei Zahlen in MaskEdit1 ein und drücken Sie die Eingabetaste. Dies wird generiert (auch Erwachen genannt).
Bei einer Ausnahme erscheint das folgende Fenster:
Dies ist eine Ausnahme, da unvollständige Daten im MaskEdit-Feld automatisch verarbeitet werden
Nach „OK“ setzt das Programm die Ausführung fort. Klicken Sie auf Button1. Ein weiteres ähnliches Fenster wird angezeigt, da es eins gibt
Division durch Null-Ausnahme.
2. Delphis Eingabeaufforderungen für abnormale Situationen sind auf Englisch, was von Chinesen nicht verwendet wird. Wir können diese Ausnahmen abfangen und implementieren
Chinesische Tipps. Die spezifischen Schritte sind wie folgt:
1. Ändern Sie das OnClick-Ereignis von Button1 wie folgt:
procedure TForm1.BitBtn1Click(Sender: TObject);
var k:integer;
beginnen
k:=0;
versuchen
k:=9 div k;
außer
showmessage('Der Divisor darf nicht Null sein');
Ende;
Ende;
2. Speichern Sie das Programm und führen Sie es aus. Das Eingabeaufforderungsfeld, das nach dem Klicken auf Button1 erscheint, wird durch die chinesische Meldung „Der Divisor darf nicht Null sein“ ersetzt. verwenden
Die try...except...end-Anweisung ist eine gängige Methode zur Behandlung von Ausnahmen. Die Anweisung nach dem reservierten Wort try wird ausgeführt, wenn
Wenn eine Ausnahme auftritt, wird die Anweisung zwischen den reservierten Wörtern „except“ und „end“ ausgeführt. Andernfalls wird die Anweisung nach „end“ ausgeführt und ersetzt somit die von Delphi
Standardbehandlung von Ausnahmen. Eine weitere ähnliche Aussage ist try...finally...end, was dasselbe ist wie try...außer...
....Der Unterschied zu end besteht darin, dass unabhängig davon, ob die Anweisung nach dem Versuch eine Ausnahme generiert, die Anweisung nach dem Endgültigen auf jeden Fall ausgeführt wird.
Bei Ausnahmen wie denen, die von der TmaskEdit-Box generiert werden, ist die Verwendung der try-Anweisung jedoch machtlos, da wir sie nicht finden können
Ein Ort zum Schreiben von Try-Anweisungen. Wir können es nur anders lösen.
3. Jedes Projekt in Delphi verfügt über ein Tapplication-Objekt, das ein unsichtbares Objekt ist. wir können
Durch Ändern des OnException-Ereignisses können Sie spezielle Ausnahmen steuern. Die spezifischen Methoden sind wie folgt:
1. Deklarieren Sie einen Prozess MyException in der Klasse von Form1. Dieser Prozess hängt mit dem OnException-Ereignis von Tapplication zusammen.
Gleiche Parameter:
öffentlich
{Öffentliche Erklärungen}
procedure MyException(Sender:TObject;E:Exception);
2. Schreiben Sie den Prozesscode:
procedure TForm1.MyException(Sender:TObject;E:Exception);
beginnen
Wenn E EDBEditError ist, dann showmessage(‘Die Eingabe entspricht nicht den Regeln’)
anders
Application.ShowException(E); {Aufruf der Standard-Ausnahmebehandlung}
Ende;
3. Weisen Sie dem OnException-Ereignis von Tapplication im OnCreate-Ereignis von Form1 einen Wert zu:
procedure TForm1.FormCreate(Sender: TObject);
beginnen
Application.OnException :=MyException;
Ende;
4. Speichern Sie das Programm und führen Sie es aus, geben Sie eine oder zwei Zahlen in das Feld MaskEdit ein, drücken Sie die Eingabetaste, und ein chinesisches Eingabeaufforderungsfeld wird angezeigt.
Ersetzen Sie das ursprüngliche englische Eingabeaufforderungsfeld.
4. Hier möchten wir alle daran erinnern, auf drei Punkte zu achten:
1.Delphi fasst alle Ausnahmen in einer Klasse zusammen, nämlich der Ausnahmeklasse (Exception).
Ein Sonderfall, in sysutils.pas im Verzeichnis c:program files orlandDelphi 3source tlsys
Es gibt eine Definition der Ausnahmeklasse.
2. Das Tapplication-Objekt stellt einen Prozess „HandleException“ bereit, um nicht behandelte Fehler zu behandeln, die im Programm hervorgerufen werden.
Ausnahmeereignisse: Wenn wir dem OnException-Ereignis von Tapplication einen Wert zuweisen, ruft HandleException das neue auf
Vorgehensweise zum Ersetzen der standardmäßigen Fehlermeldungsanzeige. Es steht uns frei, die angezeigten Inhalte in unserem eigenen Prozess zu arrangieren, um Han zu erreichen
Transformationseffekt.
3. Wir verwenden die IF-Beurteilungsanweisung, um die angegebene Ausnahme abzurufen. Wir können eine einfache Methode verwenden, um den Namen der angegebenen Ausnahme abzurufen.
Zurück zum Beispiel am Anfang des Artikels: Hier wählen wir die Option Bei Ausnahme unterbrechen aus, führen das Programm erneut aus und geben ein
Falsche Zahlen führen dazu, dass MaskEdit1 eine Ausnahme generiert und das folgende Fenster erscheint:
Der EDBEditError in der zweiten Zeile des Fensters ist der Name der Ausnahme. Der Code im Programm in diesem Artikel:
Wenn E EDBEditError ist, dann showmessage(‘Die Eingabe erfüllt nicht die Anforderungen’)
Es wurde basierend auf diesem Namen geschrieben. Hier erhalten Sie Informationen, wenn Sie den genauen Namen der Ausnahme nicht kennen. Benutze dies
Seien Sie vorsichtig bei der Behandlung von Ausnahmeereignissen, da Sie die standardmäßige Ausnahmebehandlung von Delphi ersetzt haben.
Dies kann zum Absturz des Systems führen.
Das obige Programm läuft erfolgreich unter Windows 95 Delphi 3.0.