Ruby日期时间错误没有nil到String的隐式转换

ux6nzvsh  于 2023-08-04  发布在  Ruby
关注(0)|答案(1)|浏览(116)

我正在使用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

字符串

yzxexxkh

yzxexxkh1#

Date.parse(nil)Time.parse(nil)都会引发TypeError
get_parsed_datetime只能拯救ArgumentError,而不能拯救TypeError
一个也可以拯救TypeError的版本看起来像这样:

def get_parsed_datetime(raw_payload)
  parse_datetime(raw_payload[:datetime])
rescue ArgumentError, TypeError
  raise Base::UnprocessableContentError, I18n.t('invalid_datetime_error')
end

字符串
或者,挽救所有类型的错误的版本可以是rescue StandardError

相关问题