今日見かけたコード

ループ内のswitch文の最後がこんな感じでした。

switch (hoge) {
case CODE1:
    doSomething();
    break;
case CODE2:
    doSomething();
    break;
case CODE3:
    doSomething();
    break;
default:
    // ありえない
    break;
}

「ありえない」とコメント書くぐらいなら、例外投げるとかするのが普通じゃないですかね。どうやら静的解析ツールが「switchにdefaultがない」と警告が出るので入れただけっぽいのです。ループ中でこういうのって危険だと思うのですが。一種の例外の握りつぶしですよね。break文を入れているので「ステートメントが無い」と警告も出てないのが痛い。