スタック トレースを失わずに C# で InnerException を再スローするにはどうすればよいですか?

WBOY
リリース: 2023-08-29 09:29:13
転載
561 人が閲覧しました

如何在 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 サイトの他の関連記事を参照してください。

ソース:tutorialspoint.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!