Maison >développement back-end >Tutoriel C#.Net >Comment relancer une InnerException en C# sans perdre la trace de la pile ?

Comment relancer une InnerException en C# sans perdre la trace de la pile ?

WBOY
WBOYavant
2023-08-29 09:29:13679parcourir

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

En C#, throw est un mot-clé, utile pour lancer manuellement des exceptions pendant l'exécution du programme. Nous pouvons utiliser des blocs try-catch pour gérer ces exceptions levées si nécessaire.

En utilisant le mot-clé throw dans le bloc catch, nous pouvons relancer l'exception gérée dans le bloc catch. La relance des exceptions est utile lorsque nous voulons transmettre l'exception à l'appelant pour qu'il la gère comme il le souhaite.

Ce qui suit est un exemple d'utilisation du mot-clé throw pour renvoyer une exception à l'appelant à l'aide d'un bloc try-catch en C#.

Exemple

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;
      }
   }
}

C'est ainsi que nous pouvons renvoyer une exception à l'appelant si nécessaire en utilisant le mot-clé throw dans le bloc catch.

Sortie

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

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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer