Да, вы должны реализовать именно то, что вам нужно.
Системы, вокруг которых я работаю / работаю, обычно реализуют, по крайней мере, конструктор, который получает причину исключения (в точности как в вашем примере). Кроме того, исключение, определяющее только конструктор по умолчанию, не будет иметь особого смысла, если только оно не очень специфично.
С уважением.