C# .NET例外スタックトレースの解析
C#と.NET例外スタックトレースを解析。.NETランタイム例外から名前空間パス、パラメータ型付きメソッドシグネチャ、ファイルパス、行番号を抽出します。
C#
詳細な説明
C# .NET例外スタックトレースの理解
C#/.NET例外スタックトレースは詳細な型情報、完全な名前空間パス、メソッドパラメータ型、ファイル位置を含みます。プログラミング言語の中でも最も冗長で情報豊富なスタックトレースフォーマットの1つです。
C#スタックトレースフォーマット
System.NullReferenceException: Object reference not set to an instance of an object.
at MyApp.Services.UserService.GetProfile(Int32 userId) in C:\src\MyApp\Services\UserService.cs:line 42
at MyApp.Controllers.UserController.Show(Int32 id) in C:\src\MyApp\Controllers\UserController.cs:line 18
at Microsoft.AspNetCore.Mvc.Infrastructure.ActionMethodExecutor.Execute(Object controller)
スタックフレームコンポーネント
C#フレームは他の言語よりも多くの詳細を含みます:
- 完全修飾メソッド名 --- 名前空間、クラス、メソッドを含む
- パラメータ型 --- メソッドパラメータの型を表示(例:
Int32 userId) - ファイルパス --- ソースファイルへの完全なファイルシステムパス(PDBデバッグシンボルが利用可能な場合)
- 行番号 ---
lineプレフィックス付き(例::line 42)
内部例外
C#はInnerExceptionを通じた例外チェーンをサポートしています。--->プレフィックスは内部(根本原因)例外を示し、--- End of inner exception stack trace ---は境界をマークします。
非同期スタックトレース
C#のasync/awaitはスタックトレースに表示されるステートマシンを作成します:<MethodName>d__N.MoveNext()パターンは非同期メソッドのステートマシンを示します。
ユースケース
C#例外スタックトレースはASP.NET Core Web API、Azure Functions、Xamarin/MAUIモバイルアプリ、Unityゲーム開発、Windowsデスクトップアプリケーションに表示されます。Application Insights、Elmah、Sentryを通じた本番監視がこれらのトレースをキャプチャします。内部例外チェーンの理解は根本原因の診断に不可欠です。