Interface that can be implemented by exceptions etc that are error coded.
The error code is a String, rather than a number, so it can be given
user-readable values, such as "object.failureDescription".
An error code can be resolved by a MessageSource, for example.