Skip to content

Instantly share code, notes, and snippets.

@bhardin
Last active December 28, 2015 00:49
Show Gist options
  • Save bhardin/7416214 to your computer and use it in GitHub Desktop.
Save bhardin/7416214 to your computer and use it in GitHub Desktop.
Question for Avdi

When checking for valid input, we could raise an exception to make it more helpful to the developer doing the implementation.

Current code:

def initialize(params)
  super
 
  raise ArgumentError, "Must provide results base dir." unless params.has_key?("dir")
  @dir = params["dir"]
end

According to Confident Ruby it seems this is a bad pattern. The right pattern, would be the following:

def initialize(params)
  super
 
  @dir = params.fetch("dir")
rescue KeyError
  raise ArgumentError, "Must provide results base dir."
end

Is this correct? If so, our issue with this is what if something in super raises KeyError?

@bhardin
Copy link
Author

bhardin commented Nov 13, 2013

I have to think on this a bit. Let me continue using the philosophy and post a more thorough example when I come across one. Thanks for being helpful.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment