Der folgende Artikel enthält eine Übersicht über C# StackOverflowException. Die StackOverflowException wird von der Microsoft Intermediate Language (MSIL)-Anweisung namens OpCodes.LocalLoc-Anweisung ausgelöst. Die StackOverflowException-Klasse stellt mehrere Methoden bereit, darunter StackOverflowException(), StackOverflowException(string message), StackOverflowException(string message, Exception innereException) und so weiter.
Syntax:
[Serializable] public sealed class StackOverflowException : SystemException
Im Folgenden finden Sie die genannten Beispiele:
C#-Programm zur Demonstration einer Stapelüberlaufausnahme, wenn zur Laufzeit eine unendliche Rekursion stattfindet.
Code:
using System; //a class called program is defined public class program { // a method called rec is defined which takes a value as parameter and increases its value by one static void Rec(int vals) { // since we have written a recursive loop and 0 is passed as a parameter, it ends in an infinite loop causing exception Console.WriteLine(vals); Rec(++vals); } //main method is called public static void Main() { //The rec method is called to start the infinite recursion Rec(0); } }
Ausgabe:
C#-Programm zur Demonstration von StackOverflowException, wenn zur Laufzeit eine unendliche Rekursion stattfindet, auch nachdem Try-Block- und Catch-Codeblöcke zum Abfangen der Ausnahme verwendet wurden.
Code:
using System; //a class called check is defined public class check { // a method called ex is defined which takes a value as parameter and increases its value by one static void ex(int equals) { Console.WriteLine(equals); ex(++equals); } //main method is called within which try and block methods are defined to catch the exception public static void Main() { try { //The ex method is called by passing zero as a parameter to start the infinite recursion ex(0); } catch (StackOverflowException ep) { Console.WriteLine(ep.Message); } } }
Ausgabe:
Eine Endlosschleife für die Rekursion beginnt mit der Übergabe von Null als Parameter an die ex-Methode im try-Block. Obwohl wir den Catch-Block zum Abfangen der Ausnahme geschrieben haben, kann er diese Ausnahme nicht abfangen, da diese Ausnahme über den abzufangenden Catch-Block hinausgeht.
Das obige ist der detaillierte Inhalt vonC# StackOverflowException. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!