adding more details to Exception object

I know that the default ruby Exception object holds message and
backtrace.

Sometimes I want to specify variable names and values to the Exception
object so that I can email myself the details in the exception_notifier.

I know I could subclass Exception to add more details to it, but I dont
want to have to recreate all the classes for exceptions that already
exist (ArgumentError,IOError, etc).

I also know that I could tack on all the info in the message but that
would get very messy since the message is usually in the subject of my
error emails.

I want to be able to do :

raise ArgumentError.new(msg, details)

Should I try something like

class Exception
attr_accessor :details
def initialize(msg, details)

end
end

which probably wont work since its a builtin function and there is only
stub code for it.

Make your own exception:

class CustomException < StandardError
    attr :message, :details
    def initialize(message, details)
    @message = message
    @details = details
    end
end