Heim  >  Artikel  >  Java  >  Ausnahmemechanismus der Programmiersprache

Ausnahmemechanismus der Programmiersprache

零下一度
零下一度Original
2017-07-27 17:04:211513Durchsuche

Übersicht

Die Ausnahmebehandlung ist ein Mechanismus in Programmiersprachen oder Computerhardware, der zur Behandlung abnormaler Bedingungen in Software oder Informationssystemen verwendet wird (d. h. über den normalen Ausführungsfluss hinaus). Programm) bestimmte Sonderkonditionen). Verschiedene Programmiersprachen weisen sehr erhebliche Unterschiede bei der Behandlung von Ausnahmen auf (der Unterschied zwischen Fehlererkennung und Ausnahmebehandlung besteht darin, dass es sich bei der Fehlererkennung um Code handelt, der unvorhergesehene Probleme im normalen Programmablauf behandelt, z. B. einen Aufrufvorgang, der nicht erfolgreich beendet werden kann). Einige Programmiersprachen verfügen über Funktionen, die nicht sicher aufgerufen werden können, wenn die Eingabe unzulässige Daten enthält oder der Rückgabewert nicht effektiv von Ausnahmen unterschieden werden kann. Beispielsweise kann die Funktion atoi in der Sprache C (Konvertierung von ASCII-Zeichenfolgen in Ganzzahlen) 0 zurückgeben, wenn die Eingabe unzulässig ist. In diesem Fall muss der Programmierer eine zusätzliche Fehlererkennung (möglicherweise durch einige globale Hilfsvariablen wie Cs errno) oder eine Eingabeüberprüfung (z. B. durch reguläre Ausdrücke) durchführen oder eine Kombination beider Methoden verwenden.

Durch die Ausnahmebehandlung können wir Benutzer kontrollieren und zu illegalen Eingaben im Programm auffordern, um einen Absturz des Programms zu verhindern.

Aus Prozesssicht sind Hardware-Interrupts gleichbedeutend mit behebbaren Ausnahmen, obwohl Interrupts im Allgemeinen nichts mit dem Programmablauf selbst zu tun haben.

Aus der Sicht eines Unterprogrammprogrammierers sind Ausnahmen ein sehr nützlicher Mechanismus, um die Außenwelt darüber zu informieren, dass das Unterprogramm nicht normal ausgeführt werden kann. Wenn die eingegebenen Daten ungültig sind (z. B. der Divisor 0 ist) oder die erforderlichen Ressourcen nicht verfügbar sind (z. B. die Datei fehlt). Wenn das System keinen Ausnahmemechanismus hat, müssen Programmierer Rückgabewerte verwenden, um anzugeben, welche Fehler aufgetreten sind. [1]

Ausnahmemechanismus von Programmiersprachen

Viele gängige Programmiersprachen, darunter Actionscript, Ada, BlitzMax, C++, C#, D, ECMAScript, Eiffel, Java, ML, Object Pascal (wie Delphi, Free Pascal usw.), Objective-C, Ocaml, PHP (Version 5), PL/1, Prolog, Python, REALbasic, Ruby, Visual Prolog und die meisten .NET-Programmiersprachen, integrierter Ausnahmemechanismus Sie alle durchsuchen den Funktionsaufrufstapel rückwärts, bis sie auf den Ausnahmebehandlungscode stoßen. Im Allgemeinen wird die Stapelabwicklung während des Suchvorgangs dieses Ausnahmebehandlungscodes Schritt für Schritt abgeschlossen. Da Common Lisp jedoch kein Stack-Rollback verwendet, kann die Ausführung an der Stelle fortgesetzt werden, an der die Ausnahme ausgelöst wurde, nachdem die Ausnahme behandelt wurde. Und Visual Basic (insbesondere in seinen Versionen vor .net, z. B. 6.0) geht noch weiter: Die on error-Anweisung kann leicht angeben, ob der Programmierer erneut versucht (fortsetzen), überspringen (als nächstes fortsetzen) oder ausgeführt werden soll Fehlerbehandler (gehe zu ***). [1]

Die Syntax des Ausnahmemechanismus in den meisten Sprachen ist ähnlich: Verwenden Sie throw oder raise, um ein Ausnahmeobjekt (Java oder C++ usw.) oder einen speziellen erweiterbaren Aufzählungstypwert (z. B Ada-Sprache); der Bereich des Ausnahmebehandlungscodes wird mit einer Mark-Klausel (Sprachbereich beginnend mit try oder begin) markiert, um seinen Anfang zu markieren, und die erste Ausnahmebehandlungsklausel (catch, außer, resume usw.) wird dazu verwendet Markieren Sie sein Ende. Es können fortlaufend mehrere Ausnahmebehandlungsklauseln angezeigt werden, von denen jede einen bestimmten Ausnahmetyp behandelt. Einige Sprachen erlauben else-Klauseln für Situationen, in denen keine Ausnahmen auftreten. Gebräuchlicher ist die „final, secure“-Klausel, die unabhängig davon ausgeführt wird, ob eine Ausnahme auftritt, und dazu dient, einige für die Ausnahmebehandlung erforderliche Ressourcen freizugeben. [1]

Die C++-Ausnahmebehandlung ist die Grundlage der Resource-Acquisition-Is-Initialization. [1]

Es wird allgemein davon ausgegangen, dass die C-Sprache die Ausnahmebehandlung nicht unterstützt. Die Perl-Sprache unterstützt optional eine strukturierte Ausnahmebehandlung. [1]

Die Python-Sprache verfügt über einen sehr umfassenden Ausnahmebehandlungsmechanismus, sodass es sehr schwierig ist, ein Programm ohne Try und Except zu schreiben. [1]


Erklärung der Begriffe

Ausnahmebehandlung, der englische Name ist Exception Handling, ist eine neue Methode, die die Methode des abnehmenden Fehlercodes ersetzt Alle Fehlercodemethoden. Vorteile können nicht angegeben werden. Die Ausnahmebehandlung trennt den Empfang und die Verarbeitung von Fehlercodes. Diese Funktion verdeutlicht die Gedanken von Programmierern und trägt dazu bei, die Lesbarkeit des Codes zu verbessern, sodass er für Betreuer leichter zu lesen und zu verstehen ist.

Die Funktion zur Ausnahmebehandlung (auch als Fehlerbehandlung bezeichnet) bietet eine Möglichkeit, mit unerwarteten oder abnormalen Bedingungen umzugehen, die während der Ausführung des Programms auftreten. Bei der Ausnahmebehandlung werden die Schlüsselwörter „try“, „catch“ und „finally“ verwendet, um möglicherweise fehlgeschlagene Vorgänge zu versuchen, Fehler zu behandeln und anschließend Ressourcen zu bereinigen.

Die Ausnahmebehandlung ist normalerweise eine Maßnahme, die ergriffen wird, um das Auftreten unbekannter Fehler zu verhindern. Der Vorteil der Ausnahmebehandlung besteht darin, dass Sie sich nicht mehr den Kopf zerbrechen müssen, um verschiedene Fehler zu berücksichtigen. Dies bietet eine sehr effektive Methode zur Behandlung bestimmter Fehlertypen und verbessert die Programmiereffizienz erheblich.

Ausnahmen können von der Common Language Runtime (CLR), Bibliotheken von Drittanbietern oder Anwendungscode mithilfe des Schlüsselworts throw generiert werden.


Funktionen

1. Wenn die Anwendung auf eine abnormale Situation stößt (z. B. eine Division durch Null oder eine Warnung zu wenig Speicher), wird eine Ausnahme generiert.

2. Wenn eine Ausnahme auftritt, springt der Kontrollfluss sofort zum zugehörigen Ausnahmehandler (falls vorhanden).

3. Wenn für die angegebene Ausnahme kein Ausnahmehandler vorhanden ist, stoppt das Programm die Ausführung und zeigt eine Fehlermeldung an.

4. Vorgänge, die Ausnahmen verursachen können, werden mit dem Schlüsselwort try ausgeführt.

5. Ein Ausnahmehandler ist ein Codeblock, der ausgeführt wird, wenn eine Ausnahme auftritt. In C# wird das Schlüsselwort „catch“ zum Definieren von Ausnahmehandlern verwendet.

6. Das Programm kann das Schlüsselwort throw verwenden, um explizit Ausnahmen auszulösen.

7. Das Ausnahmeobjekt enthält detaillierte Informationen zum Fehler, einschließlich des Status des Aufrufstapels und einer Textbeschreibung des Fehlers.

8. Selbst wenn eine Ausnahme ausgelöst wird, wird der Code im „finally“-Block ausgeführt, sodass das Programm Ressourcen freigeben kann.



Das obige ist der detaillierte Inhalt vonAusnahmemechanismus der Programmiersprache. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn