Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk membuang semula InnerException dalam C# tanpa kehilangan jejak tindanan?

Bagaimana untuk membuang semula InnerException dalam C# tanpa kehilangan jejak tindanan?

WBOY
WBOYke hadapan
2023-08-29 09:29:13629semak imbas

如何在 C# 中重新抛出 InnerException 而不丢失堆栈跟踪?

Dalam c#, throw adalah kata kunci untuk membuang pengecualian secara manual semasa pelaksanaan program .

Dengan menggunakan kata kunci lontaran dalam blok tangkapan, kita boleh melontar semula pengecualian yang dikendalikan dalam blok tangkapan. Melemparkan semula pengecualian berguna apabila kita ingin memberikan pengecualian kepada pemanggil untuk mengendalikannya seperti yang mereka mahu.

Berikut ialah contoh menggunakan kata kunci lontaran untuk melempar semula pengecualian kepada pemanggil menggunakan blok cuba-tangkap dalam C#.

Contoh

class Program{
   static void Main(string[] args){
      try{
         Method2();
      }
      catch (System.Exception ex){
         System.Console.WriteLine($"{ex.StackTrace.ToString()} {ex.Message}");
      }
      Console.ReadLine();
   }
   static void Method2(){
      try{
         Method1();
      }
      catch (System.Exception){
         throw;
      }
   }
   static void Method1(){
      try{
         throw new NullReferenceException("Null Exception error");
      }
      catch (System.Exception){
         throw;
      }
   }
}

Ini adalah cara kita boleh melemparkan semula pengecualian kepada pemanggil mengikut keperluan menggunakan kata kunci lontaran dalam blok tangkapan.

Output

at DemoApplication.Program.Method1() in C:\Users\Koushik\Desktop\Questions\ConsoleApp\Program.cs:line 49
at DemoApplication.Program.Method2() in C:\Users\Koushik\Desktop\Questions\ConsoleApp\Program.cs:line 37
at DemoApplication.Program.Main(String[] args) in C:\Users\Koushik\Desktop\Questions\ConsoleApp\Program.cs:line 24 Null Exception error

Atas ialah kandungan terperinci Bagaimana untuk membuang semula InnerException dalam C# tanpa kehilangan jejak tindanan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:tutorialspoint.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam