メソッドの引数チェック
今日改めて再認識したこと.
メソッドの引数チェックは必ずしたほうがよい.で,不正な引数に対してはArgumentException/ArgumentNullExceptionをthrowする習慣をつけたほうがよい.これをすることでデバッグ効率が格段に上がる……気がする.
ところで,こんなコードはどうだろう?
private A(int dispatcher) { if (dispatcher<=0 || 4<dispatcher) { throw new ArgumentException(); } switch (dispatcher) { case 1: // 1 のときの処理 break; case 2: // 2 のときの処理 break; case 3: // 3 のときの処理 break; case 4: // 4 のときの処理 break; default: // ここには到達しないはず!! // さて,なんて書こう?? break; } }
switch文の書き方としてdefault節は書くべきなんでしょうけど,入力チェックしてるので到達しないはず.
- ArgumentExceptionをthrowする
- Assertを書く
- 何も書かない(コメントだけ残しておく)
やっぱりAssertかな?でも,あまりそういうコードを見かけない気がします.たまたまでしょうか?