No need for metaprogramming to set these ivars
Inherit from StandardError instead of Exception

Exceptions that inherit from StandardError deal with application level
errors, while if you inherit Exception directly you risk catching errors
to do with the environment. Also the convention is to end your exceptions
with the word Error rather than Exception.