Создание нового типа исключения - написать все конструкторы или только те, которые нужны? - PullRequest
1 голос
/ 24 ноября 2011

Когда я пишу новый тип исключения, я должен писать только необходимые конструкторы или реализовывать все конструкторы, существующие в Throwable (и вызывать их как super())?

При размышлении об этомЯ бы сказал, реализуй только то, что нужно (ЯГНИ - Тебе это не нужно).Если позже мне понадобится другой конструктор, я просто добавлю его.

Пример:

public void MyException extends RuntimeException {
    // I only need this constructor
    public MyException(Throwable cause) {
        super(cause);
    }
}

Ответы [ 3 ]

3 голосов
/ 24 ноября 2011

Реализуйте только то, что вам нужно, и добавляйте по мере необходимости. Я обычно добавляю тот, который содержит сообщение String, и тот, который у вас есть (для переноса другого исключения).

2 голосов
/ 24 ноября 2011

Зависит от того, для чего вы пишете.

Для небольшой программы не пишите мертвый код.

Если класс собирается в библиотеку или будет использоваться другой командой /члены команды, где происходит какое-то владение кодом, затем напишите полный класс.Будьте осторожны с этим: «умозрительное обобщение» является серьезной проблемой при разработке программного обеспечения.

1 голос
/ 24 ноября 2011

Да, вы должны реализовать именно то, что вам нужно.

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

С уважением.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...