From: Akio Takenaka Date: 2003-03-28T11:43:05+09:00 Subject: [ruby-dev:19924] Re: はじめまして、Ruby初心者:竹中です。 現在”Ruby(現在はruby1.6.8を利用させていただいています)でパズルを解く ”ことを娯楽としているのですが、 そこでMathモジュールのリファレンスを見て、 >Rubyのレベルで、sqrt()は引数の範囲をチェックしていて、 >log(),log10()はチェックしていないのは、 >どちらかにあわせたほうが、良くはないでしょうか? K.Kosako:[ruby-dev:12402] Re: NaN, Infinity (Bug?) より と思いました。 具体的には、 $ruby -e 'p Math.sqrt(-1)' -e:1:in `sqrt': square root for negative number (ArgumentError) from -e:1 に対し $ruby -e 'p Math.log(-1)' NaN $ruby -e 'p Math.log(0)' -Infinity となるのですが……。 初心者として、あまり哲学的なことを言える立場ではないと思いますが、 定義域を外れた引数は、やはりArgumentErrorを出す方が自然かと思います。 現在私がぶつかっている壁は、 ”例外的な処理は例外として扱いたいが、if文でチェックしてraiseをすると、 例外ではない大多数の処理に迷惑がかかる(大して重い処理ではないけど、見た 目が)。” というものです。 皆さんは、どう思われますか? =========== RedMagic:http://redmagic.s8.xrea.com/