Search code examples
ruby-on-railsrubyexceptionrescue

How do I catch ArgumentError invalid base64 in Ruby?


How do I catch this exception?

    begin
      data = Base64.strict_decode64(data) # decode data
      ...
    rescue ArgumentError => e
      logger.severe "Could not decrypt data: #{e}, #{data}"

Log

ArgumentError (invalid base64): config/application.rb:32:in `decrypt'


Solution

  • I realized that I modified config/application, which requires restarting the server. Which is odd, because the error page showed the updated source code and the line number pointing to begin!

    I found I did not have access to logger either! This is the finished product:

        begin
          data = Base64.strict_decode64(data) # decode data
          ...
        rescue ArgumentError => e
          Rails.logger.warn "Could not decrypt data: #{e}, #{data}"
          text = ""
        end