- - PR -
セッターで値が規定外の時って
投稿者 | 投稿内容 | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2006-02-02 11:40
どうも、「避けられるものだ == 例外を投げるべきではない」
のように見えてしまうので (いや、私がそう読んでしまったので) 補足。 例外処理に頼らずにチェックできるものを、検証メソッドでチェックするのは基本ですよね。 今回はそうではなく、「プロパティであることと、規定外 (業務続行不可能) だった場合」 の話なので当てはまらないことに注意ですね。 .NET には、チェック例外と非チェック例外なんて概念はないです。 田中さんの例であげると、検証部分はここになります。
「そういう値なんて入ってこないようにする」それは当たり前です。 が、すり抜けてきた場合は、"本当の意味での" 例外ですよね。 その場合はもう例外を投げるしかないです。 業務が続行できませんし、バグが見えにくくなりますから。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||||||||||
|
投稿日時: 2006-02-02 12:37
なぜみんな ArgumentException ??? 「引数の値が想定範囲外」なら ArgumentOutOfRangeException を使いましょうよ (^^; ArgumentException は、それ以外の「不正な引数」の場合に投げるのが適切です。 あと、参照型のプロパティの場合、null が許容できない仕様なら ArgumentNullException を投げますね。 | ||||||||||||
|
投稿日時: 2006-02-02 20:15
するどいツッコミ、ありがとうございます(^^;; 一応代表格として ArgumentException だけを引き合いに出してしまいました。 #めんどくさがってはいけませんね。。。(自分に苦笑) | ||||||||||||
|
投稿日時: 2006-02-04 14:09
これらのやり取りを見ていて思ったのですが、もしや全部 Exception じゃ駄目なんですか? どのような場合は、どれを使うというルールのようなものがあるようですが、どうやって調べているのでしょう? #実は、一覧表のようなものがあればいいなぁ、と思っている・・・ | ||||||||||||
|
投稿日時: 2006-02-04 16:56
System名前空間の一覧ぐらい見ようよ…その中のxxxExceptionがシステムで用意されている例外です(あがったものはすべてこれ)。使用法のルールはそのクラスの説明に書いてあります。 それ以外の例外はケースバイケース。 # 追記 つ例外階層 [ メッセージ編集済み 編集者: ya 編集日時 2006-02-04 17:00 ] | ||||||||||||
|
投稿日時: 2006-02-04 19:10
こんなところにあったんですね。 実は例外階層のリンクは見かけたのですが「階層」という単語がイメージと違っていたので違うものだと思っていました。 |