Code Fix

上級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

空欄を埋めてビルドを通す

広告
広告スロット(未設定)

SwitchExpressionException の原因と直し方

網羅されていない値が実際に渡された瞬間に実行時エラーになります。

このエラーの解説と類題をまとめて見る →

広告
広告スロット(未設定)