Такие сокращения названий - моветон. Лучше использовать соответствующие полям названия.

Не передавать ничего в базовый конструктор - нехорошо. Можно было вообще сделать статический метод из toString(), и передавать его значение в качестве message в родительский конструктор. Тогда и getMessage() будет красивым, как тебе надо, и поведение исключения не будет отличаться от остальных.