Пользовательские исключения и сокращение дублированного кода - PullRequest
1 голос
/ 28 ноября 2011

Я решил использовать исключения в своем коде для обработки ошибок.Я обнаружил, что дублирую код каждый раз, когда хочу создать новое исключение.Эти классы не были чем-то особенным и содержали только сообщения.Но я пришел, чтобы полагаться на безопасность типов при передаче их.Есть ли способ предоставить новый тип класса исключения без необходимости повторной реализации конструкторов?

[Serializable]
class MyNewException : MyBaseException
{
    public MyNewException (String tMsg)
        : base(tMsg)
    {
    }

    public MyNewException (String tMsg, Exception tInnerEx)
        : base(tMsg, tInnerEx)
    {
    }
}

Приведенный выше код дублируется много раз для каждого отдельного типа исключения, которое я хочу определить.

1 Ответ

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

К сожалению, нет, конструкторы должны быть предоставлены, поскольку они не наследуются.

Кроме того, если вы не улавливаете эти конкретные исключения и не выполняете явную обработку, когда они возникают, я бы рекомендовал иметь общее исключение, которое содержит дополнительную информацию, которая может вам понадобиться. Однако это может не применяться в вашем случае.

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