关于红宝石的零级和救援的问题

时间:2016-03-06 02:38:44

标签: ruby

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_equalassert_match之间的区别是什么?为什么错误消息需要在/ /之间?

1 个答案:

答案 0 :(得分:2)

  

ex.class是什么意思?

这是ex

的班级
  

什么是ex(错误类型类)?

rescue关键字捕获任何潜在错误。 rescue Exception => ex行接收该行并将其分配给本地变量ex

  

为什么ex有一个班级?

因为ex是一个异常对象。 Ruby中的每个对象都有一个类。

  

assert_equalassert_match之间有什么区别?

他们是否应用等级==或正则表达式匹配=~来检查测试。

  

为什么错误消息需要介于/ /

之间

要使其成为正则表达式,因为子字符串与包含它的字符串不匹配。