Artikel berikut menyediakan garis besar untuk C# StackOverflowException. StackOverflowException dilemparkan oleh arahan Microsoft Intermediate Language (MSIL) yang dipanggil OpCodes.LocalLoc arahan. Kelas StackOverflowException menyediakan beberapa kaedah, termasuk StackOverflowException(), StackOverflowException(mesej rentetan), StackOverflowException(mesej rentetan, pengecualian innerexception), dan sebagainya.
Sintaks :
[Serializable] public sealed class StackOverflowException : SystemException
Di bawah adalah contoh yang dinyatakan :
Program C# untuk menunjukkan Pengecualian Limpahan Tindanan apabila terdapat rekursi tak terhingga berlaku pada masa larian.
Kod:
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); } }
Output:
Program C# untuk menunjukkan StackOverflowException apabila terdapat rekursi tak terhingga berlaku pada masa larian walaupun selepas menggunakan blok cuba dan tangkap blok kod untuk menangkap pengecualian.
Kod:
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); } } }
Output:
Gelung tak terhingga untuk rekursi bermula dengan menghantar sifar sebagai parameter kepada kaedah ex dalam blok cuba. Walaupun kami telah menulis blok tangkapan untuk menangkap pengecualian, ia gagal menangkap pengecualian ini kerana pengecualian ini melangkaui blok tangkapan untuk ditangkap.
Atas ialah kandungan terperinci C# StackOverflowException. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!