В IDE C # введите «исключение» и нажмите TAB. Это расширит вас, чтобы вы начали писать новый тип исключений. Есть комментарии со ссылками на некоторые обсуждения практики исключений.
Лично я большой поклонник создания множества маленьких классов, в том числе и для типов исключений. Например, при написании класса Foo я могу выбирать между:
throw new Exception("Bar happened in Foo");
throw new FooException("Bar happened");
throw new FooBarException();
, где
class FooException : Exception
{
public FooException(string message) ...
}
и
class FooBarException : FooException
{
public FooBarException()
: base ("Bar happened")
{
}
}
Я предпочитаю третий вариант, потому что вижу его как решение OO.