c exception handling tutorial with code examples
Die Ausnahmebehandlung ist eine Methode zur Behandlung von Fehlern, die während der Ausführung eines Programms auftreten können. In diesem Lernprogramm wird die Ausnahmebehandlung in C # anhand von Codebeispielen erläutert:
oracle pl sql interview fragen für erfahrene
Die Ausnahmebehandlung wird verwendet, um sicherzustellen, dass der Programmablauf auch dann fortgesetzt wird, wenn ein Laufzeitfehler vorliegt. Ausnahmen sind die Objekte, die ausgelöst werden, wenn ein Laufzeitfehler auftritt.
Wenn die Ausnahmen nicht behandelt werden, erzeugt C # eine Ausnahmemeldung und beendet das Programm. Hier kommt die Ausnahmebehandlung ins Spiel.
=> Lesen Sie hier den C # -Handbuch für Anfänger
Was du lernen wirst:
- Was sind Ausnahmen?
- Schlüsselwörter für die Ausnahmebehandlung
- Ausnahmeklassen in C #
- Ausnahmebehandlung in C #
- Fazit
- Literatur-Empfehlungen
Was sind Ausnahmen?
Ausnahmen sind beispiellose Fehler, die zur Laufzeit in Ihrem Programm auftreten können. In den meisten Fällen können Programmierer einige Fehler wie Validierung oder Nullprüfung oder beim Überprüfen einiger Werte leicht erkennen.
Es gibt jedoch bestimmte Zeiten, in denen wir nicht vorhersehen können, was oder wann ein Fehler auftritt. Zum Beispiel, Angenommen, ich suche eine Datei an einem Speicherort. Mein Programm läuft einwandfrei, bis die Datei vorhanden ist, und wenn die Datei irgendwie gelöscht wurde, wird mein Programm einen Fehler auslösen.
Ausnahmen treten nicht regelmäßig auf, können aber dennoch auftreten, und Sie sollten sie immer sorgfältig behandeln. Um diese zu behandeln, verwenden wir die Ausnahmebehandlung.
Immer wenn ein Fehler auftritt, sagen wir, dass er geworfen wird, 'geworfen' ist ein Objekt von System.Exception Klasse in C #. Das System.Exception Die Klasse bietet verschiedene Methoden und Eigenschaften, die Details zu dem Fehler enthalten, auf den Ihr Programm gerade gestoßen ist.
Wie die Stack-Trace-Eigenschaft, die den Stack bereitstellt, für den das Problem aufgetreten ist, oder die Message-Eigenschaft, die eine Beschreibung der Ausnahme bereitstellt.
Schlüsselwörter für die Ausnahmebehandlung
Ausnahmen bieten einen Prozess zum Steuern eines bestimmten Teils des Programms, sodass die Programmsteuerung auch dann auf einen anderen Teil des Programms übertragen wird, wenn in diesem Teil eine Ausnahme vorliegt. In C # basiert die Ausnahmebehandlung im Wesentlichen auf vier Schlüsselwörtern: werfen, versuchen, fangen und schließlich .
werfen
Wie wir bereits besprochen haben, ist werfen ein Objekt aus System.Exception Klasse in der C #. Es ermöglicht dem Programm, einen Fehler auszulösen, wenn es auf einen stößt.
Versuchen
Der Try-Block schließt den Block des Codes ein, der dazu führen kann, dass das Programm eine Ausnahme auslöst. Es folgen ein oder mehrere Fangblöcke.
Fang
Wenn der try-Block auf eine Ausnahme stößt, wird dem catch-Block die Steuerung zum Abfangen der Ausnahme bereitgestellt. Der catch-Block kann auch eine Reihe von Codes enthalten, die das Programm im Falle einer Ausnahme ausführen muss, oder es kann nur die Ausnahme abfangen und je nach Szenario und Anforderung nichts tun.
bester Texteditor für Python Mac
endlich
Der letzte Block wird verwendet, um ein bestimmtes Code-Snippet oder einen bestimmten Befehl auszuführen, unabhängig vom Auftreten einer Ausnahme. Schließlich wird der Block immer ausgeführt und kann unmittelbar nach dem Versuchsblock ausgeführt werden, wenn das Programm keine Ausnahme findet, oder er kann nach dem catch-Block ausgeführt werden, sobald das Programm eine Ausnahme abfängt.
Ausnahmeklassen in C #
Alle Ausnahmen in C # werden direkt oder indirekt von der abgeleitet System.Exception Klasse.
Lassen Sie uns einen kurzen Blick auf einige der häufigsten Ausnahmen werfen:
- System.IO.IOException: Es behandelt alle Eingabe- und Ausgabefehler.
- System.DividedByZeroException: Behandelt Fehler, die ausgelöst werden, wenn eine Zahl durch Null geteilt wird.
- System.NullReferenceException : Behandelt alle Fehler, die auftreten können, wenn auf ein Nullobjekt verwiesen wird.
- System.IndexOutOfRangeException: Behandelt Fehler, die ausgelöst werden, wenn ein Programm versucht, auf einen Index zuzugreifen, der außerhalb des Bereichs für das Array liegt.
- System.OutOfMemoryException: Behandelt Fehler, die aufgrund unzureichender Speicherpräsenz ausgelöst wurden.
Ausnahmebehandlung in C #
C # bietet eine sehr gut definierte Lösung für die Behandlung aller Arten von Ausnahmen, die mithilfe des try and catch-Blocks auftreten können. Mit diesem Block kann die Kernanweisung des Programms von den anderen Anweisungen getrennt werden.
Beispiel:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.IO; namespace ConsoleApp1 { class Program { static void Main(string() args) { try { File.OpenRead('InvalidFile'); } catch (FileNotFoundException ex) { Console.WriteLine(ex.ToString()); } Console.ReadLine(); } } }
Im obigen Beispiel haben wir unseren Code zum Öffnen einer Datei unter dem try-Block eingeschlossen. Da wir keinen gültigen Dateipfad angegeben haben, sollte der Code einen Fehler auslösen. Jetzt haben wir den Fehler in unserem catch-Block abgefangen. Wenn die Datei im angegebenen Dateipfad nicht vorhanden ist, löst der Code eine FileNotFoundException aus.
Diese Ausnahme wird vom catch-Block abgefangen, in dem wir die erwartete Ausnahme bereits definiert haben. Stellen wir uns nun vor, wenn unser Code eine andere Ausnahme als die bereits definierte auslöst, kann unser Block diese nicht abfangen. Um eine generische Ausnahme abzufangen, fügen wir einen weiteren catch-Block hinzu.
Schauen wir uns unseren aktualisierten Code an:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.IO; namespace ConsoleApp1 { class Program { static void Main(string() args) { try { File.OpenRead('InvalidFile'); } catch (FileNotFoundException ex) { Console.WriteLine(ex.ToString()); } catch (Exception e) { Console.WriteLine(e.ToString()); } Console.ReadLine(); } } }
Dieser generische catch-Block kann alle Ausnahmen abfangen, die im try-Block ausgelöst werden können. Fügen wir nun auch einen finally-Block hinzu, um dies zu vervollständigen. Um es einfach zu machen, drucken wir einfach eine Nachricht mit dem finally-Block.
schneller Sortieralgorithmus c ++
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.IO; namespace ConsoleApp1 { class Program { static void Main(string() args) { try { File.OpenRead('InvalidFile'); } catch (FileNotFoundException ex) { Console.WriteLine(ex.ToString()); } catch (Exception e) { Console.WriteLine(e.ToString()); } finally { Console.WriteLine('Finally block executed'); } Console.ReadLine(); } } }
Hier haben wir gerade den finally-Block mit einer einfachen Nachricht hinzugefügt. Sie können dem Block auch einige benutzerdefinierte Anweisungen hinzufügen. Die Gesamtstruktur des Programms bleibt jedoch der hier gezeigten ähnlich.
Der finally-Block wird immer ausgeführt, unabhängig davon, ob eine Ausnahme vorliegt oder nicht. Das Programm startet vom try-Block und wechselt dann direkt zum finally-Block, wenn keine Fehler / Ausnahmen vorliegen. Wenn es auf eine Ausnahme stößt, bewegt es sich zuerst zum Abfangen und führt dann den letzten Block aus.
Gibt es eine Bedingung, unter der der finally-Block nicht ausgeführt wird?
Wie der Name schon sagt, wird der letzte Block am Ende ausgeführt und ist der letzte Block des Codes, der ausgeführt wird. Schließlich wird der Block immer ausgeführt, wenn die Anwendung ausgeführt wird. Der endgültige Block wird nur dann nicht ausgeführt, wenn die Anwendung abstürzt oder absichtlich mit dem Prozessbefehl beendet wird.
Fazit
Wenn Ausnahmen nicht richtig behandelt werden, verursachen sie Fehler in Ihrem Programm. Wenn Sie in Ihrem Code keine Try / Catch-Blöcke verwendet haben, wird Ihr Programm mit einer Meldung abgebrochen, die die Ausnahme anzeigt. Für einen generischen Benutzer ist es sehr schwierig, den Fehler auf den Quellcode zurückzuführen und ihn zu beheben.
Daher ist es immer eine gute Praxis, in Ihrem Programm eine Ausnahmebehandlung bereitzustellen.
Beispielcode
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.IO; namespace ConsoleApp1 { class Program { static void Main(string() args) { try { File.OpenRead('InvalidFile'); } catch (FileNotFoundException ex) { Console.WriteLine(ex.ToString()); } catch (Exception e) { Console.WriteLine(e.ToString()); } finally { Console.WriteLine('Finally block executed'); } Console.ReadLine(); } } }
=> Sehen Sie hier unsere komplette C # -Schulungsserie
Literatur-Empfehlungen
- C # -Funktionen / Methoden-Tutorial mit Codebeispielen
- Python DateTime Tutorial mit Beispielen
- SVN Tutorial: Quellcodeverwaltung mit Subversion
- C # String Tutorial - String-Methoden mit Codebeispielen
- Ausnahmebehandlung in C ++
- Schildkröte SVN Tutorial: Überarbeitungen im Code Repository
- AWS CodeBuild Tutorial: Extrahieren von Code aus Maven Build
- So behandeln Sie Ausnahmen in SoapUI Groovy-Skripten - SoapUI Tutorial # 11