【发布时间】:2017-08-12 10:14:16
【问题描述】:
我正在尝试做一个 safe_Int(n)。
如果输入不是“整数”值(例如:123 或 '123'),它应该返回 TypeError 和消息:“#{n} must be a number”。
这是我所做的:
def safe_Int(n)
begin
Integer(n) rescue TypeError
rescue TypeError => e
puts "#{n} is not a number"
end
end
我无法显示我想要的消息。
我得到“没有将类隐式转换为整数”
如何自定义错误信息?
【问题讨论】:
-
这可能是个坏主意。
.to_i是一种安全的转换方式,它几乎适用于任何可以将自身强制转换为整数的东西。像这样的硬铸造是一种相当严厉的方法。同样,将异常转换为随机输出并没有真正的帮助,它只是忽略了可能是严重的问题。 -
.to_i 不适合我的需求...我还需要为布尔值获取相同的消息。
标签: ruby exception error-handling