Maison > Article > développement back-end > C# StackOverflowException
L'article suivant fournit un aperçu de C# StackOverflowException. L'exception StackOverflowException est levée par l'instruction Microsoft Intermediate Language (MSIL) appelée instruction OpCodes.LocalLoc. La classe StackOverflowException fournit plusieurs méthodes, notamment StackOverflowException(), StackOverflowException(string message), StackOverflowException(string message, exception innerexception), etc.
Syntaxe :
[Serializable] public sealed class StackOverflowException : SystemException
Vous trouverez ci-dessous les exemples mentionnés :
Programme C# pour démontrer l'exception de débordement de pile lorsqu'une récursivité infinie se produit au moment de l'exécution.
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); } }
Sortie :
Programme C# pour démontrer StackOverflowException lorsqu'une récursion infinie se produit au moment de l'exécution, même après avoir utilisé le bloc try et catch des blocs de code pour intercepter l'exception.
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); } } }
Sortie :
Une boucle infinie de récursivité commence par passer zéro comme paramètre à la méthode ex dans le bloc try. Même si nous avons écrit le bloc catch pour intercepter l'exception, il ne parvient pas à intercepter cette exception car cette exception dépasse le bloc catch pour être interceptée.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!