safe_Int(n)を実行しようとしています。整数変換のための例外メッセージをカスタマイズする - Ruby
入力が "整数値"でない場合(例:123または '123')、TypeErrorと "#{n}は数字でなければなりません"というメッセージが返されます。ここで
は私がやったことです:
def safe_Int(n)
begin
Integer(n) rescue TypeError
rescue TypeError => e
puts "#{n} is not a number"
end
end
私は私が望むメッセージを表示することはできませんよ。
私はどのように私は、エラーメッセージをカスタマイズすることができ
「を整数にクラスの暗黙の変換」を取得していないのですか?
def safe_int(n)
Integer(n)
rescue ArgumentError => e
puts "#{n} is not a number"
end
これはおそらく悪い考えです。 '.to_i'は変換するための安全な方法です。それは、それ自体を整数に強制することができるほとんどのものに作用します。そのようなハードキャスティングはかなり重い手のアプローチです。同様に、例外をランダムな出力に変換することは、重大な問題である可能性のあるものを無視するだけでは役に立ちません。 – tadman
.to_iは私のニーズには適していません...私はブーリアンに対しても同じメッセージを得る必要があります。 –