From: Tadashi Saito Date: 2003-07-28T18:17:53+09:00 Subject: [ruby-dev:20956] Re: [BigDecimal] exception handling 斎藤です。 ----- Original Message ----- From: "Shigeo Kobayashi" Sent: Saturday, July 26, 2003 8:41 PM Subject: [ruby-dev:20922] Re: [BigDecimal] exception handling > > > > 「Floatの仕様に合わせる」という意味でも、またユーザにより早い > > > > タイミングでエラーを知らせるという意味でも、BigDecimal.modeに > なら、BigDecimal内でNaNが発生したときに raise すべきと > 考えるのが自然じゃないですか? > 出口で raise しても意味がないでしょう。 自分の表現が悪く、論点をずらしてしまったようです。 自分は、その「出口」の話のみをするつもりでした。 VpException()の呼び出しについては悪いと思っていないので、 [ruby-dev:20901] の自分の発言 > BigDecimal.modeに関係なく直接、 は余分で、VpException()呼び出し部分の削除の必要性を特別に 感じているわけではありませんでした。to_fについても同様です。 現在BigDecimal_to_iでQnilを返している部分は、本来 rb_raiseにした方がベターでは、という提案です。 前述の通り、これはFloatの仕様にならっています。またユーザに対し nilとIntegerとの演算が成されるよりも早いタイミングで、エラーを 示す事ができます。 この他にもBigDecimal.modeでは、不正な引数を渡した場合に その場で例外にならずnilを返していますが、こちらも Check_Typeなどで直ちに例外があがる仕様の方が、より 親切ではないでしょうか。 他のライブラリでも大抵、そうなっている気がします。 -- 斎藤ただし