Heim  >  Artikel  >  Backend-Entwicklung  >  Arten von Ausnahmen in C#

Arten von Ausnahmen in C#

PHPz
PHPzOriginal
2024-09-03 15:20:36810Durchsuche

Das Problem, das während der Ausführung des Programms auftritt, ist eine Ausnahme und diese Ausnahmen sind die Reaktionen auf Umstände, die während der Ausführung eines Programms außergewöhnlich sind, wie die Ausnahme, die immer dann ausgelöst wird, wenn wir versuchen, durch Null zu dividieren und die Kontrolle übertragen wird von einem Teil des Programms zu einem anderen Teil des Programms durch Ausnahmen und die Behandlung von Ausnahmen wird in C# mit vier Schlüsselwörtern verwaltet, nämlich try, Catch, Final und Throw Blocks.

Ausnahmearten in C# mit Beispielen

In C# gibt es verschiedene Arten von Ausnahmen. Sie sind:

1. System.OutOfMemoryException

Die Fehler, die aufgrund unzureichenden freien Speichers generiert werden, werden von dieser Ausnahme behandelt. Betrachten Sie das folgende Beispielprogramm, um System zu demonstrieren. OutOfMemoryException.

Beispiel:

//a class called check is defined
public class check
{
//main method is called
public static void Main()
{
// a string variable is created and tried to store 2.1 billion characters and this causes an out of memory exception
string val = new string('r', int.MaxValue);
}
}

Ausgabe:

Arten von Ausnahmen in C#

Ausgabe:

Im obigen Programm ist eine Klasse namens check definiert. Dann wird die Hauptmethode aufgerufen. Es wird eine Zeichenfolgenvariable erstellt und versucht, 2,1 Milliarden Zeichen zu speichern, was zu einer Ausnahme wegen unzureichendem Speicher führt.

2. System.NullReferenceException

Die Fehler, die durch die Referenzierung eines Nullobjekts generiert werden, werden von dieser Ausnahme behandelt. Betrachten Sie das folgende Beispielprogramm, um System zu demonstrieren. NullReferenceException

Beispiel:

using System;
//a class called check is defined
class check
{
//main method is called
static void Main()
{
//a string variable is defined, and it is referencing to null
string value = null;
//the length of the value referencing to null is checked if it is equal to zero causing an exception
if (value.Length == 0)
{
Console.WriteLine(value);
}
}
}

Ausgabe:

Arten von Ausnahmen in C#

Im obigen Programm ist eine Klasse namens check definiert. Dann wird die Hauptmethode aufgerufen. Dann wird eine String-Variable definiert, die auf Null verweist. Dann wird die Länge des auf Null verweisenden Werts überprüft, wenn dieser gleich Null ist, was zu einer Ausnahme führt.

3. System.InvalidCastException

Die Fehler, die während der Typumwandlung generiert werden, werden von dieser Ausnahme behandelt. Betrachten Sie das folgende Beispielprogramm, um System zu demonstrieren. InvalidCastException.

Beispiel:

using System.IO;
using System.Text;
//a class called check is defined
class check
{
//main method is called
static void Main()
{
// an instance of the string builder class is created which is then assigned to a new object through implicit casting and then casting is tried explicitly to convert the instance of stringbuilder class to streamreader class
StringBuilder ref1 = new StringBuilder();
object ref2 = ref1;
StreamReader ref3 = (StreamReader)ref2;
}
}

Ausgabe:

Arten von Ausnahmen in C#

Im obigen Programm ist eine Klasse namens check definiert. Dann wird die Hauptmethode aufgerufen. Dann wird eine Instanz der String-Builder-Klasse erstellt, die dann durch implizite Umwandlung einem neuen Objekt zugewiesen wird. Anschließend wird explizit versucht, die Instanz der Stringbuilder-Klasse in die Streamreader-Klasse umzuwandeln, was eine Ausnahme verursacht.

4. System.ArrayTypeMismatchException

Die Fehler, die generiert werden, wenn der Typ nicht mit dem Array-Typ übereinstimmt, werden von dieser Ausnahme behandelt. Betrachten Sie das folgende Beispielprogramm, um System zu demonstrieren. ArrayTypeMismatchException.

Beispiel:

//a class called check is defined
class check
{
//main method is called
static void Main()
{
// a string is defined and assigned the values which is then assigned to object class array and then an integer is tried to put in the same array which causes an exception
string[] arr1 = { "Welcome", "to", "CSharp" };
object[] arr2 = arr1;
arr2[0] = 8;
}
}

Ausgabe:

Arten von Ausnahmen in C#

Im obigen Programm ist eine Klasse namens check definiert. Anschließend wird die Hauptmethode definiert. Dann wird eine Zeichenfolge definiert und den Werten zugewiesen, die dann dem Objektklassen-Array zugewiesen werden. Anschließend wird versucht, eine Ganzzahl in dasselbe Array einzufügen, was eine Ausnahme verursacht.

5. System.IndexOutOfRangeException

Die Fehler, die generiert werden, wenn eine Methode auf ein Array verweist, das außerhalb des gültigen Bereichs liegt, werden von dieser Ausnahme behandelt. Betrachten Sie das folgende Beispielprogramm, um System zu demonstrieren. IndexOutOfRangeException.

Beispiel:

//a class called check is defined
class check
{
//main method is called
static void Main()
{
// an array is defined to store 100 integers but then an integer is tried to be stores at a position outside of the size of the array which causes an exception
int[] arr = new int[10];
arr[0] = 10;
arr[10] = 20;
arr[20] = 30;
}
}

Ausgabe:

Arten von Ausnahmen in C#

Im obigen Programm ist eine Klasse namens check definiert. Dann wird die Hauptmethode aufgerufen. Dann wird ein Array zum Speichern von 100 Ganzzahlen definiert, aber dann wird versucht, eine Ganzzahl an einer Position außerhalb der Größe des Arrays zu speichern, was eine Ausnahme verursacht.

6. System.DivideByZeroException

Die Fehler, die generiert werden, wenn eine Dividende durch Null geteilt wird, werden von dieser Ausnahme behandelt. Betrachten Sie das folgende Beispielprogramm, um System zu demonstrieren. DivideByZeroException.

Beispiel:

using System;
//a class called check is defined
class check
{
//main method is called
static void Main()
{
//an integer variable res is defined which is tried to divide by zero which causes an exception
int res = 10 / int.Parse("0");
Console.WriteLine(res);
}
}

Ausgabe:

Arten von Ausnahmen in C#

Im obigen Programm ist eine Klasse namens check definiert. Dann wird die Hauptmethode aufgerufen. Dann wird eine ganzzahlige Variable res definiert, die versucht wird, durch Null zu dividieren, was eine Ausnahme verursacht.

7. System.StackOverflowException

Die Fehler, die durch einen Stapelüberlauf entstehen, werden von dieser Ausnahme behandelt. Betrachten Sie das folgende Beispielprogramm, um System zu demonstrieren. StackOverflowException.

Beispiel:

using System;
//a class called check is defined
public class check
{
// a method called recurse is defined which takes a value as parameter and increases its value by one
static void Recurse(int val)
{
// since we have written a recursive loop and 0 is passed as a parameter, it ends in an infinite loop causing exception
Console.WriteLine(val);
Recurse(++val);
}
//main method is called
public static void Main()
{
//The recurse method is called to start the infinite recursion
Recurse(0);
}
} <strong>Output:</strong>

Arten von Ausnahmen in C#

In the above program, a class called check is defined. Then a method called recurse is defined which takes a value as a parameter and increases its value by one. Then the main method is called in which the infinite loop for recursion begins by passing zero as a parameter. Then since we have written a recursive loop and 0 is passed as a parameter, it ends in an infinite loop causing an exception.

8. System.IO.IOException

The errors that are generated by input, the output is handled by this exception. Consider the below example program to demonstrate System. IO. IOException.

Example:

using System;
using System.IO;
//a class called check is defined
class check
{
//main methos is called
static void Main()
{
try
{
//a file is tried to open which do not exist and causes an exception
File.Open("D:\\ex.txt", FileMode.Open);
}
catch (IOException)
{
Console.WriteLine("Inputoutput Exception is handled");
}
}
}

Output:

Arten von Ausnahmen in C#

In the above program, a class called check is defined. Then the main method is called. Then a file is tried to open which does not exist and causes an exception.

Das obige ist der detaillierte Inhalt vonArten von Ausnahmen in C#. 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
Vorheriger Artikel:Ausnahmebehandlung in C#Nächster Artikel:Ausnahmebehandlung in C#