C# versuchen

C# versuchen
Eine Ausnahme ist ein Zustand oder ein Ereignis, das zum Zeitpunkt der Ausführung aufgetreten ist, was beim Schreiben des Quellcode nicht zu erwarten ist. Um diese Situation zu überwinden, wird ein spezieller Code mit dem Ausnahmeobjekt benötigt, um dies zu korrigieren. Dieser Code enthält vier Blöcke, von denen zwei die Hauptelemente sind, die für die Ausnahme verwendet werden müssen. Diese vier Blöcke werden unten erläutert.
  • Versuchen Sie: Dies definiert einen Try -Block; Wir verwenden die Anweisung, die einen Fehler in diesem Versuchsblock verursachen kann.
  • Catch: Dieser Block wird verwendet, um die Ausnahme zu fangen, die durch den Try -Block erzeugt wird. Das Objekt der Ausnahme erzeugt den Fehler in diesem Block.
  • Schließlich: Jeder Code, den Sie auf jeden Fall generieren möchten, wird in diesem Block geschrieben.
  • Throw: Dieser Block wird verwendet, um die Ausnahme manuell vom Try -Block zum Fangblock manuell zu werfen.

Beispiel 1

Um das Try-Catch-Konzept zu implementieren, werden wir zunächst ein einfaches Programm in C Sharp Code verwenden. Erstens werden wir eine Reihe von Ganzzahl -Datentypen deklarieren. Während der Erklärung des Arrays müssen wir die Größe des Arrays nicht deklarieren. Wenn die Werte jedoch zugewiesen werden, wird der Index automatisch behoben. In diesem Fall wird also das Array von Index 4 erstellt.

Int [] arr = 1, 2, 3, 4, 5;

Um alle Elemente eines Arrays anzuzeigen, werden wir eine für die Schleife verwenden. Die Funktion des Arrays, arr.Lang. Diese Funktion wird durch das Array -Objekt aufgerufen. Die Konsolenanweisung spielt ihre Rolle bei der Anzeige der Elemente des Arrays. Wir werden jedoch den Index des Arrays verwenden, der außerhalb seiner tatsächlichen Größe liegt. Zum Beispiel beträgt die Größe des Arrays 4, aber wir werden den Index 7 verwenden, um seinen Wert anzuzeigen.

Konsole.WriteLine (arr [7]);

Dies führt zu einem Fehler; Eine Ausnahme wird ausgelöst, wenn diese Zeile ausgeführt wird.

Um den vorherigen Code zu kompilieren, haben wir den MCS -Compiler verwendet, der im Linux -Terminal erforderlich ist, während Mono verwendet wird, um den ausführbaren Code mit dem auszuführen .Exe -Erweiterung.

$ Mcs Datei.CS
$ Mono -Datei.exe

Der resultierende Wert sind die Elemente, die in einem Array vorhanden sind, das über die Schleife „für“ angezeigt wird. Aber was ist mit der letzten Zeile, mit der das Element im 7. Index des Arrays angezeigt wird?? Der Index ist außerhalb des angegebenen Bereichs, daher wird eine Ausnahme auftreten.

Um diesen Fehler zu überwinden oder die Ausnahme zu vermeiden, verwenden wir das Konzept des Versuchs und fangen. Diese beiden sind die Tools, die wir in dem Code verwenden, der bei der reibungslosen Ausführung des Codes hilft, ohne den Fehler hervorzuheben, der das Programm beendet macht.

Das Try-Catch-Phänomen funktioniert so, dass die Anweisung oder der Code, von dem Sie glauben. Zum Beispiel wird der Satz, der zum Anzeigen des im vorherigen Code geschriebenen Wertes des 7. Index verwendet wird, innerhalb des Versuchskörpers verwendet.

Jetzt werden wir diesen Ansatz auf den vorherigen Code anwenden. Alle Elemente werden von der Schleife ähnlich angezeigt, indem sie im Bereich des Arrays bleiben. Schreiben Sie diese Anweisung in den Try -Block, wenn es um das 7. Indexelement geht.

Versuchen
Konsole.WriteLine (arr [7]);

Nachdem wir den Versuchskörper deklariert haben, werden wir den Fangblock verwenden. Dieser Block ist der Hauptteil, um die Ausnahme zu vermeiden. Es behandelt den Fehler, indem die Fehlermeldung angezeigt und gleichzeitig das Programm erfolgreich ausgeführt wird. Die angezeigte Nachricht ist die Eigenschaft des Objekts, die zum IndexoutoFrangeException -Fehler gehört.

Fangen
Konsole.WriteLine ("Nachricht", e.Nachricht);

Diese Nachricht funktioniert das Objekt; Eine Nachricht ist das, was wir verwendet haben, während das Objekt die andere anzeigt.

Sie können den resultierenden Wert sehen. Die Fehlermeldung wird über die Try-Catch-Blöcke angezeigt.

Beispiel # 2

Es ist nicht obligatorisch, immer einen einzigen Versuch und einen einzelnen Fangblock zu verwenden. Wir können mehr als einen Fangblock für einen einzelnen Try -Block verwenden. Im C -scharfen Code der Ausnahme werden mehrere Fangblöcke verwendet, wenn der Benutzer sich über den Fehlertyp nicht sicher ist. Der Benutzer ist sich nicht bewusst, welcher Ausnahmetyp auftreten kann. Aus diesem Grund verwenden wir verschiedene Fangblöcke, um jede Art von Fehler zu bewältigen, auf die wir begegnen können.

Durch die Verwendung mehrerer Fänge gibt es einen letzten Block. Dieser Teil des Codes wird unabhängig davon ausgeführt, ob der Fehler auftritt.

Die einfache Syntax mehrerer Fänge ist unten angegeben:

versuchen

// jede Anweisung
Fangen (obj)

// Handlercode
Fangen (obj)

// Handlercode
Endlich

// Standardcode

Im angegebenen Beispiel werden die Werte im Array im endgültigen Block angezeigt. Betrachten Sie den Quellcode, in dem ein Array von 4 Elementen deklariert wird. Im Inneren des Try -Körper.

Konsole.WriteLine (arr [i] / arr i +1]);

In der Schleife wird jedes Element abgerufen und durch die nächste Anzahl des Arrays geteilt. Nach dem Versuchskörper werden wir eine Folge von Fangblöcken verwenden, um die Ausnahmen verschiedener Typen zu erwähnen, die gemäß der Situation aufgetreten werden können.

Catch (indexoutofrangeException e)

Der erste Block ist für die Ausnahme außerhalb des Bereichs zusammen mit dem Objekt. Eine Nachricht mit dem Objekt wird angezeigt.

In ähnlicher Weise wird der zweite Fangblock:

Fangen (Dividebyzerexception E)

Diese Ausnahme erfolgt, wenn eine Zahl durch Null geteilt wird.

Die dritte und die letzte Art des Fangs ist für die Parameter, die im Argument über den Wert über den Bereich in den deklarierten Variablen geschrieben wurden.

Fangen (argumentoutofrangeException e)

Wenn Sie diese definieren, werden Sie wissen, dass der Fang ausgeführt wird und den Wert anzeigt.

Bewegen. Es wird ausgeführt, ob eine Ausnahme eintritt oder nicht. Und eine für die Schleife im Inneren zeigt die Werte eines Arrays an.

Wir haben die Divisionsbedingung verwendet, um die Nummer mit der daneben vorhandenen Nummer zu teilen. Wenn wir also die Werte an der zweiten Position und bei 1 Index sehen, gibt es „0“, so dass alles, das mit 0 geteilt ist, eine Ausnahme verursacht.

Zuerst wird der Fehler definiert, und dann zeigt der letzte Block alle Werte an.

Abschluss

Ein Ausnahmebehandlungsprozess befasst sich mit der Ermittlung von Fehlern und der Lösung dieser dann mit. Dies geschieht mithilfe von Try-Catch-Blöcken im Quellcode. Der Code, den Sie bezweifeln, der eine Ausnahme verursachen kann. Zum einzigen Versuch werden ein einzelner Fang und mehrere Fänge verwendet. Sie können jedes Ausnahmeobjekt verwenden, von dem Sie glauben, dass es für die mögliche Ausnahme hilfreich sein kann. Wir haben Beispiele implementiert, die nach dem einzelnen Fang und mehreren Fangansätzen nachgehen.