我正在使用null值测试DateTime(ruby),并得到错误“TypeError:没有nil到String”的隐式转换。我想知道为什么我的代码没有相应地工作,如果它已经实现了异常。对此有什么解释或者如何摆脱它?
def get_parsed_datetime(raw_payload)
parse_datetime(raw_payload[:datetime])
rescue ArgumentError
raise Base::UnprocessableContentError, I18n.t('invalid_datetime_error')
end
def parse_datetime(datetime_value)
{
:date => Date.parse(datetime_value).strftime('%d/%m/%Y'),
:hour => Time.parse(datetime_value).hour
}
end
字符串
1条答案
按热度按时间yzxexxkh1#
Date.parse(nil)
和Time.parse(nil)
都会引发TypeError
。get_parsed_datetime
只能拯救ArgumentError
,而不能拯救TypeError
。一个也可以拯救
TypeError
的版本看起来像这样:字符串
或者,挽救所有类型的错误的版本可以是
rescue StandardError
。