ホームページ >バックエンド開発 >C#.Net チュートリアル >スタック トレースを失わずに C# で InnerException を再スローするにはどうすればよいですか?
C# では、 throw はキーワードです。プログラムの実行中に手動で例外をスローすると便利です。必要に応じて try-catch ブロックを使用して、スローされた例外を処理できます。
catch ブロックで throw キーワードを使用すると、catch ブロックで処理された例外を再スローできます。例外の再スローは、呼び出し元に例外を渡し、希望どおりに処理できるようにする場合に便利です。
以下は、C# で try-catch ブロックを使用して呼び出し元に例外を再スローするための throw キーワードの使用例です。
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 中国語 Web サイトの他の関連記事を参照してください。