例外をスローするケースに到達できないブレークステートメントを残すのは私の愚かなことですか?私の守備的な部分は、論理が変わった場合にそこに残したいと思っています。私の別の部分は、他の開発者が自分のコードでコンパイラの警告を見るのを望んでいません( "Unreachable code detected")。私は例外をスローする場合に到達不能な休憩を残すべきですか?
switch (someInt)
{
case 1:
// Do something
break;
case 2:
// Do something else
break;
case 3:
// Oh, we don't use threes here!
throw new Exception("Business rules say don't use 3 anymore");
break; // Unreachable...until the fickle business rules change...
default:
throw new Exception("Some default exception");
break; // Unreachable...until...well, you get the idea.
}
UPDATE
私は後日スローを削除するとコンパイルエラーを引き起こすだろうと言って、いくつかの回答を参照してください。しかし、単純にスローを取り除く(またはコメントする)だけでは、それを破棄することなくケースをスタックすることになり、意図しない振る舞いになる可能性があります。私はそれが起こりそうなシナリオだと言っているわけではないが...まあ、可能性の高いシナリオとの戦いについて防御的なプログラミングですか?
'break 'はもはや必要ではなく、私は警告としてエラーとしてビルドするので、私はそれらを削除します。 – asawyer
興味深い質問 - 私の最初の反応は、break文を含めることですが、それは純粋に癖になると思います。 – KazR
プラグマの警告を無効にするあなたの懸念が有効だと思っても、他の人には不便を感じないようにするには、過度の防御をしてコードベースを素早く乱雑にすることができます – Michael