>  기사  >  백엔드 개발  >  스택 추적을 잃지 않고 C#에서 InnerException을 다시 발생시키는 방법은 무엇입니까?

스택 추적을 잃지 않고 C#에서 InnerException을 다시 발생시키는 방법은 무엇입니까?

WBOY
WBOY앞으로
2023-08-29 09:29:13617검색

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

C#에서 throw는 프로그램 실행 중에 예외를 수동으로 발생시키는 데 유용한 키워드입니다. try-catch 블록을 사용하여 필요에 따라 이러한 발생된 예외를 처리할 수 있습니다.

catch 블록에서 throw 키워드를 사용하면 catch 블록에서 처리된 예외를 다시 throw할 수 있습니다. 예외 다시 발생은 호출자가 원하는 방식으로 예외를 처리하도록 호출자에게 예외를 전달하려는 경우에 유용합니다.

다음은 C#에서 try-catch 블록을 사용하여 throw 키워드를 사용하여 호출자에게 예외를 다시 발생시키는 예입니다.

Example

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

catch 블록의 throw 키워드를 사용하여 필요에 따라 호출자에게 예외를 다시 발생시키는 방법입니다.

출력

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

위 내용은 스택 추적을 잃지 않고 C#에서 InnerException을 다시 발생시키는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 tutorialspoint.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제