Better exception handling

You probably only want to rescue `ArgumentError` here, but certainly nothing more than the default `StandardError`. Rescuing `Exception` can lead to very strange behaviour.

See:
http://www.mikeperham.com/2012/03/03/the-perils-of-rescue-exception/
http://stackoverflow.com/a/10048406/1848