Ich versuche, eine safe_Int (n) zu tun.Anpassen Ausnahme Nachricht für eine Ganzzahl-Konvertierung - Ruby
Wenn die Eingabe kein "integerble" -Wert (zB: 123 oder '123') ist, sollte ein TypeError zurückgegeben werden und die Meldung: "# {n} muss eine Zahl sein".
Hier ist, was ich getan habe:
def safe_Int(n)
begin
Integer(n) rescue TypeError
rescue TypeError => e
puts "#{n} is not a number"
end
end
Ich bin nicht in der Lage, die Nachricht anzuzeigen, die ich will.
ich „keine implizite Konvertierung der Klasse in Integer“ bekommen
Wie kann ich die Fehlermeldung anpassen?
Dies ist wahrscheinlich eine schlechte Idee. '.to_i' ist der sichere Weg, um zu konvertieren, es funktioniert auf so ziemlich alles, was sich in eine ganze Zahl zwingen kann. Hard-Casting ist ein ziemlich unhandlicher Ansatz. Genauso wenig ist es hilfreich, Exceptions in eine zufällige Ausgabe zu konvertieren, die einfach ignoriert, was ernsthafte Probleme sein könnte. – tadman
.to_i ist nicht gut für meine Bedürfnisse ... Ich muss auch die gleiche Nachricht für boolean bekommen. –