我正在尝试做一个safe_Int(n)。
如果输入不是"整数"值(例如:123或' 123')它应该返回TypeError并且消息:"#{n}必须是数字"。
这是我做的:
def safe_Int(n)
begin
Integer(n) rescue TypeError
rescue TypeError => e
puts "#{n} is not a number"
end
end
我无法显示我想要的消息。
我得到"没有将Class隐式转换为Integer"
如何自定义错误消息?
答案 0 :(得分:1)
确定!找到我想要的东西:
def safe_Int(n)
Integer(n)
rescue
raise TypeError.new "#{n} is not a number!"
end
obs:我没有显示完整的代码,所以我不会成为挑战的破坏者。
答案 1 :(得分:0)
不是说我认为这是一个好主意,但Integer(n)
提出ArgumentError
而不是TypeError
,因此您的代码应该是这样的:
def safe_int(n)
Integer(n)
rescue ArgumentError => e
puts "#{n} is not a number"
end