Ruby Koans练习有一个文件about_nil.rb
。以下是其代码:
def test_you_dont_get_null_pointer_errors_when_calling_methods_on_nil
begin
nil.some_method_nil_doesnt_know_about
rescue Exception => ex
assert_equal NoMethodError, ex.class
assert_match(/undefined method/, ex.message)
end
end
ex.class
是什么意思?什么是ex
(错误类型类)?为什么ex
有课?还有assert_equal
和assert_match
之间的区别是什么?为什么错误消息需要在/ /
之间?
答案 0 :(得分:2)
ex.class
是什么意思?
这是ex
。
什么是
ex
(错误类型类)?
rescue
关键字捕获任何潜在错误。 rescue Exception => ex
行接收该行并将其分配给本地变量ex
。
为什么
ex
有一个班级?
因为ex
是一个异常对象。 Ruby中的每个对象都有一个类。
assert_equal
和assert_match
之间有什么区别?
他们是否应用等级==
或正则表达式匹配=~
来检查测试。
为什么错误消息需要介于
之间/ /
?
要使其成为正则表达式,因为子字符串与包含它的字符串不匹配。