上級 › TypeInitializationException の原因と直し方 › パターン4
TypeInitializationException の原因と直し方
静的コンストラクタ(staticフィールドの初期化を含む)の中で例外が起きると、直接の例外ではなくTypeInitializationExceptionに包まれて報告されます。
1 class Cache { 2 public static int Total; 3 static Cache() { 4 int[] data = { 1, 2, 3 }; 5 Total = data[__]; ^ 6 } 7 } 8 class Program { 9 static void Main(string[] args) { 10 System.Console.WriteLine(Cache.Total); 11 } 12 }
Unhandled exception. System.TypeInitializationException: The type initializer for 'Cache' threw an exception.
at Cache..cctor() in Program.cs:line 5
空欄を埋めてビルドを通す
配列の範囲外アクセスが原因でも、静的コンストラクタ内であればTypeInitializationExceptionに包まれます。
次の問題