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

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

WBOY
Lepaskan: 2023-08-29 09:29:13
ke hadapan
645 orang telah melayarinya

如何在 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;
      }
   }
}
Salin selepas log masuk

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
Salin selepas log masuk

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!

sumber:tutorialspoint.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan