Чувствую, что изобрёл велосипед, а в чём подвох не пойму.
У меня несколько однотипных исключений в программе. Все они имеют совершенно одинаковый код.
[Serializable]
public class AbcdOperationalException : Exception
{
public AbcdOperationalException()
{ }
public AbcdOperationalException(string format, params object[] agrs)
: base(String.Format(format, agrs))
{ }
public AbcdOperationalException(Exception innerException, string format, params object[] agrs)
: base(String.Format(format, agrs), innerException)
{ }
protected AbcdOperationalException(SerializationInfo info, StreamingContext context)
: base(info, context)
{ }
}
Отличаются только имена классов. Обычно эти исключения ассоциируются с каким-то другим классом,
в контексте которого они работают. Мне надоело писать одно и тоже и я сделал шаблонный класс.
Все тоже самое, только...
[Serializable]
public class OperationalException<T> : Exception
{
...
}
throw new OperationalException<Abcd>("Blah-blah");
...
catch (OperationalException<Abcd> ex)
{
...
}
Всё вроде работает как надо. Использовать удобно. Писанины меньше, но чувствую, что изобрёл велосипед...
Почему нет такого стандартного шаблонного класса?