Change constructors so that you are required to provide a key, and the message get's formatted in the exception's constructor.