General question, are there any Ruby best practices around when to `fail` with a simple message and when to encapsulate as an exception and fail with the exception?