Parsing 应为Time.zone.parse引发日期无效但返回nil的错误

Parsing 应为Time.zone.parse引发日期无效但返回nil的错误,parsing,ruby-on-rails-4,exception,timezone,Parsing,Ruby On Rails 4,Exception,Timezone,为什么Time.zone.parse('invalid')不会引发错误,而Time.parse('invalid')会引发错误 使用Rails 4.2.7.1的示例 >> Time.zone.parse('invalid') nil >> Time.parse('invalid') ArgumentError: no time information in "invalid" from D:/softwares/ruby/Ruby22/lib/ruby/2.2

为什么
Time.zone.parse('invalid')
不会引发错误,而
Time.parse('invalid')
会引发错误


使用Rails 4.2.7.1的示例

>> Time.zone.parse('invalid')
nil

>> Time.parse('invalid')
ArgumentError: no time information in "invalid"
    from D:/softwares/ruby/Ruby22/lib/ruby/2.2.0/time.rb:252:in `make_time'
    from D:/softwares/ruby/Ruby22/lib/ruby/2.2.0/time.rb:364:in `parse'

这两种方法都调用
Date.\u parse
,如果无法提取日期,则返回
{}

Time.zone.parse
在那里停止,如果结果为空则返回。
Time.parse
调用
make\u Time
,如果无法生成日期,则会抛出一个错误。

查看这些方法的实际源代码,您会理解:)谢谢,我理解了这些行为。但是我不明白他们为什么选择这样做。