From: Shigeo Kobayashi Date: 2003-07-21T23:12:48+09:00 Subject: [ruby-dev:20756] Re: [BigDecimal] exception handling 小林です。 ----- Original Message ----- From: "Tadashi Saito" Subject: [ruby-dev:20748] [BigDecimal] exception handling > ・引数に正の整数を渡さなければいけないメソッドにゼロ以下の数を >  渡すと、現状fatalになってしまいます。これはちょっとやりすぎでは >  ないでしょうか。他にあわせて、ArgumentErrorにしてみました。 >  またエラーメッセージも、他のファイルに似せたスタイルにしました。 取り込みました。 > > ・BigDecimal#to_i において、レシーバがIntegerで表現できない >  値(NaN、±∞)のときにnilを返していましたが、Float#to_iに合わせて >  FloatDomainErrorをあげるようにしてみました。 意図を考慮して、修正しました。 > > ・表題とは関係ないのですが、ISDIGIT()を使うべきところはそちらを >  使うようにしました。 取り込みました。 > ・VpDivd()内のspace_error:の部分でもrb_fatal()が使われていますが、 >  ここに到達する条件がいまいちつかめませんでした。 >  もし、/* NOTREACHED */ 的な意味なのであれば、rb_bug()の方が >  用途に合っていると思います。 rb_bug()に直しました。 >  FloatとBigDecimalの領域エラーを別々にとらえたい需要がゼロで >  あると断言できない限り、BigDecimal::DomainError(< RangeError) >  などを作って、そちらを利用した方が健全ではないでしょうか。 >  (こうすれば、FloatとBigDecimalのどちらの領域エラーも捕らえたい >  場合も、RangeErrorを使えばできます。) まぁ、そちらのほうがベターですけど、あまりやる気はないですねぇ。 ------------------ 小林 茂雄 shigeo@tinyforest.jp