gpt4 book ai didi

ruby - ex.class应该等于什么?

转载 作者:行者123 更新时间:2023-12-03 08:03:47 28 4
gpt4 key购买 nike

我正在尝试使用从this website下载的代码来学习 ruby 。

我被困在这一点上。

  def test_you_dont_get_null_pointer_errors_when_calling_methods_on_nil
# What happens when you call a method that doesn't exist. The
# following begin/rescue/end code block captures the exception and
# makes some assertions about it.
begin
nil.some_method_nil_doesnt_know_about
rescue Exception => ex
# What exception has been caught?
assert_equal NoMethodError, ex.class

# What message was attached to the exception?
# (HINT: replace __ with part of the error message.)
assert_match(/__/, ex.message)
end

结束

我应该用错误消息的一部分替换__,但是我没有成功。好吧,是的,因为经过几次尝试,我只是将其替换为空格,因为我发现错误消息的单词之间有空格。但是我应该如何查看错误消息呢?

最佳答案

您将在此处收到NoMethodError:

>> def tst
>> nil.an_unknown_meth
>> rescue Exception => ex
>> puts ex.class
>> puts ex.message
>> end
=> nil

>> tst
NoMethodError
undefined method `an_unknown_meth' for nil:NilClass

因此,使用 NoMethodError作为类,并使用 /undefined method .* for nil:NilClass/作为消息应该适合。

ruby 文档中有关 NoMethodErrorgenerally on Ruby Exceptions的更多信息

关于ruby - ex.class应该等于什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9648589/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com