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