[bugzid:3731,3749] More granularity for exceptions

fix previous change: override getMessage() (instead of setting message
in constructor) to keep the errorType displayed correctly after a call
to setErrorType()