上級 › SwitchExpressionException の原因と直し方 › パターン2
SwitchExpressionException の原因と直し方
switch式が全てのパターンを網羅していないとき、コンパイラは警告を出しますが止めません。
1 class Program { 2 static string Grade(int score) { 3 return score switch { 4 90 => "A", 5 80 => "B", 6 70 => "C", 7 }; 8 } 9 static void Main(string[] args) { 10 System.Console.WriteLine(Grade(__)); ^ 11 } 12 }
Unhandled exception. System.Runtime.CompilerServices.SwitchExpressionException: Non-exhaustive switch expression failed to match its input.
at Program.Grade(Int32 score) in Program.cs:line 3
空欄を埋めてビルドを通す
点数を細かく分岐させるほど、想定外の値を見落としやすくなります。_ => "..."のような既定パターンを最後に置くと防げます。
次の問題