Einführung in die Ausnahmebehandlung in C #
Es ist nicht zu erwarten, dass ein Benutzer ständig die richtigen Daten eingibt. Wenn jedoch die falsche oder unerwartete Eingabe nicht korrekt verarbeitet wird, kann der gesamte Code abstürzen oder eine Endlosschleife verwenden. Dies ist ein Problem, das beim Ausführen des Programms aufgrund unerwarteter Bedingungen oder Eingaben auftritt. Beispielsweise ist das Ergebnis unendlich, wenn eine Zahl durch Null geteilt wird. Mit der Ausnahmebehandlung wird das Programm angewiesen, mit dem nächsten Codeblock fortzufahren oder in bestimmten Situationen das definierte Ergebnis bereitzustellen. Die Ausnahmebehandlung könnte mit weniger als vier Schlüsselwörtern erfolgen.
- Try: Der try-Block definiert den Typ der zu behandelnden Ausnahme. Hier würde die Ausnahme gefangen werden. Es wird immer mit einem Fangblock gepaart.
- Catch: Nachdem der try-Block den Typ definiert und während der Ausführung eine Ausnahme erhalten hat, bestätigt der catch-Block den Typ des zu verwendenden Ausnahmebehandlers. Dieser Block bestimmt auch, wo die Ausnahme behandelt werden soll. Wie das Schlüsselwort anzeigt, ist es so, als würde man die Ausnahme abfangen.
- Schließlich: Dieser Block enthält eine Reihe von Anweisungen. Unabhängig davon, welche Ausnahme ausgelöst wird, werden die im letzten Block definierten Anweisungen immer ausgeführt.
- Auslösen: Wenn eine Ausnahme abgefangen wird, wird das Schlüsselwort throw verwendet, um die abgefangene Ausnahme anzuzeigen.
Sie können die Software oder Ihren Code aus viel Aufwand speichern, indem Sie den Ausnahmehandler definieren. Es wird empfohlen, Ausnahmebehandlungsroutinen überall dort zu definieren, wo es eine mögliche Ausnahme gibt.
Syntax
Immer wenn die Ausnahme ausgelöst wird, fängt eine deklarierte Methode die Ausnahme mit Hilfe des Schlüsselworts try and catch ab. Wir müssen diese Kombination auf den Teil des Codes setzen, eine Ausnahme wird erwartet. Diese Codes werden als geschützter Code bezeichnet. Sie können auch mehr als ein catch-Schlüsselwort für ein try-Schlüsselwort definieren. Am Ende des Inhalts wird der letzte Teil des Codes ausgeführt, und zwar unabhängig davon, ob eine Ausnahme ausgelöst wird oder nicht.
Code
try
(
//Define the statement that could cause an exception.
)
Catch(ExceptionName secondException)
(
//error handling code
)
Finally
(
//define the statement that will be executed
)
Wie funktioniert die Ausnahmebehandlung in C #?
Es gibt viele vordefinierte Klassen für die Behandlung der Ausnahme. Der try-Block behandelt den Teil des Codes, der möglicherweise eine Ausnahme auslöst, und catch bestätigt, was zu tun ist, wenn eine Ausnahme abgefangen wird. Der letzte Teil des Blocks definiert, was zu tun ist, wenn die Ausnahme erkannt wird oder nicht, und der Throw-Teil zeigt die Meldung an, falls eine festgelegt wurde.
Ausnahmeklassen in C #
In C # sind viele Klassen verfügbar, über die Ausnahmen dargestellt werden können. Alle Klassen sind von der Hauptklasse System abgeleitet. Ausnahme. Es gibt nur wenige Klassen, die auch von System.ApplicationException und System.SystemException abgeleitet sind.
Beispiele für Ausnahmeklassen in C #
Ausnahmen werden vom System abgeleitet. Ausnahmeklasse. Hier ist die Liste der allgemeinen C # -Ausnahmeklassen.
Ausnahme | Beschreibung |
System.DivideByZeroException | Behandelt den Fehler, wenn versucht wird, eine Zahl durch Null zu teilen. |
System.NullReferenceException | Behandelt den Fehler, wenn auf ein Objekt verwiesen wird, das nicht vorhanden ist. |
System.InvalidCastException | Behandelt den Fehler, wenn versucht wird, ein ungültiges Casting durchzuführen. |
System.IO.IOException | Alle Eingabe-Ausgabe-Fehler werden behandelt. |
System.FieldAccessException | Beim Versuch, auf nicht autorisierte Klassen zuzugreifen |
1. C # try / catch
Die Ausnahmebehandlung erfolgt durch try and catches-Block in C #. Der try-Block in C # wird verwendet, um den Code zu platzieren, der möglicherweise eine Ausnahme auslöst. Die Ausnahme wird vom catch-Block behandelt.
C # Beispiel ohne try / catch
Code:
using System;
public class exceptionhandling
(
public static void Main(string() args)
(
int a = 10;
int b = 0;
int x = a/b; //we are trying to divide the number with zero
Console.WriteLine("other part of the code");
)
)
Ausgabe:
C # try / catch-Beispiel
Code
using System;
public class ExExample
(
public static void Main(string() args)
(
try
(
int a = 10;
int b = 0;
int x = a / b;
)
catch (Exception e) ( Console.WriteLine(e); )
Console.WriteLine("Rest of the code");
)
)
Ausgabe:
Verwendung von Ausnahmeklassen in C # endlich
Die Nachricht wird angezeigt, unabhängig davon, ob die Ausnahme abgefangen wurde.
Code
using System;
public class Exceptionhandling
(
public static void Main(string() args)
(
try
(
int x = 5;
int y= 0;
int z = x / y;
)
catch (Exception obj) ( Console.WriteLine(obj); )
finally ( Console.WriteLine("Time to execute finally block"); )
Console.WriteLine("Other part of the code");
)
)
Ausgabe:
1. C # schließlich Beispiel, wenn Ausnahme nicht behandelt wird
Code
using System;
public class ExceptionHandling
(
public static void Main(string() args)
(
try
(
int p = 6;
int q = 0;
int r= p/q;
)
catch (NullReferenceException nullObject) ( Console.WriteLine(nullObject); )
finally ( Console.WriteLine("Exception not handled. Now Finally section will be executed"); )
Console.WriteLine("Other part of the code");
)
)
Ausgabe:
2. Benutzerdefinierte C # -Ausnahme
Das System ist nicht nur definiert, sondern wir können auch unsere eigene Ausnahme setzen. Wir müssen jedoch den Code erben, um dies zu erreichen.
Code
using System;
public class userdefinedInvalidAge : Exception
(
public userdefinedInvalidAge (String errorMessage)
: base(errorMessage)
(
)
)
public class TestUserDefinedException
(
static void validateAge(int age)
(
if (age < 18)
(
throw new userdefinedInvalidAge("Sorry, Age must be greater than 18");
)
)
public static void Main(string() args)
(
try
(
validateAge(12);
)
catch (userdefinedInvalidAge e) ( Console.WriteLine(e); )
Console.WriteLine("Rest of the code");
)
)
Ausgabe:
Fazit
An jedem Ort, von dem Sie glauben, dass er aus irgendeinem Grund einen Fehler erzeugt, sollte ein Ausnahmehandler verwendet werden. Es ist wichtig, dass Sie eine catch-Anweisung verwenden und von generisch bis zu einer bestimmten Ausnahme beginnen. Ihre gesamte Software oder Ihr gesamter Code ist ohne ordnungsgemäße Ausnahmebehandlung gefährdet.
Empfohlene Artikel
Dies ist eine Anleitung zur Ausnahmebehandlung in C #. Hier diskutieren wir, wie die Ausnahmebehandlung in C # funktioniert, sowie Beispiele und die Verwendung von C #. Sie können auch unsere anderen verwandten Artikel durchgehen, um mehr zu erfahren.
- Überladen in C #
- C # String-Funktionen
- Verwendung von C #
- C # if-Anweisung
- Leitfaden zur Ausnahmebehandlung in VB.NET
- Überladen und Überschreiben in C #
- VB.Net-Veranstaltungen