我以前在Java上工作过很多,现在我正在使用Ruby.我无法弄清楚的一件事是什么是相当于Java"NullPointerException"的ruby?我想在输入函数时测试变量,如果它们是nil我想提出这种类型的异常.是否有特定的ruby错误类来引发此类异常?
提出ArgumentError可能适合您的情况.你可以这样做:
def i_dont_take_nils_from_nobody x
raise ArgumentError.new "You gave me a nil!" if x.nil?
puts "thanks for the #{x}"
end
i_dont_take_nils_from_nobody nil
#=> ArgumentError: You gave me a nil!
i_dont_take_nils_from_nobody 1
#=> thanks for the 1
Run Code Online (Sandbox Code Playgroud)
小智 5
例外列表不包含此类内容.
nil是一个对象,可以检查项目以确保它们不是零.
result = Base.find(blah)
result.nil?
Run Code Online (Sandbox Code Playgroud)
在nil(对象)没有的nil上调用一个方法应该会给你一个NoMethodError异常.
result = Base.find(blah) #returning no result
result.my_advanced_functionality(42)
Run Code Online (Sandbox Code Playgroud)
由于结果为nil,并且nil对象没有定义my_advanced_functionality函数,因此您将获得NoMethodError
我学到的东西之一就是"你在nil上错误地称为id,这将是4"(因为nil的对象id为4)
heirarchy例外有一个ArgumentError异常,我从未使用过,但看起来它可能会为你服务.
| 归档时间: |
|
| 查看次数: |
2166 次 |
| 最近记录: |