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
Libérer: 2023-08-29 09:29:13
avant
681 Les gens l'ont consulté

如何在 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;
      }
   }
}
Copier après la connexion

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
Copier après la connexion

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!

source:tutorialspoint.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal