NotSupportedException
звучит , как будто он явно подходит, но в документации четко указано, что его следует использовать для других целей. Из замечания класса MSDN:
Есть методы, которые не
поддерживается в базовом классе, с
ожидание того, что эти методы будут
реализовано в производных классах
вместо. Производный класс может
реализовать только подмножество методов
из базового класса, и бросить
NotSupportedException для
неподдерживаемые методы.
Конечно, есть способ, которым NotSupportedException
, очевидно, достаточно хорош, особенно учитывая его здравый смысл. Сказав это, я не уверен, что это правильно.
С учетом цели Неограниченная мелодия ...
Существуют различные полезные вещи, которые можно сделать с помощью общего
методы / классы, где есть ограничение типа "T: enum" или "T:
делегат "- но, к сожалению, это запрещено в C #.
Эта служебная библиотека обходит запреты, используя ildasm / ilasm ...
... кажется, что новый Exception
может быть в порядке, несмотря на большое количество доказательств, с которыми мы справедливо должны встретиться перед созданием пользовательского Exceptions
. Что-то вроде InvalidTypeParameterException
может быть полезно во всей библиотеке (а может и нет - это, безусловно, крайний случай, верно?).
Должны ли клиенты быть в состоянии отличить это от исключений BCL? Когда клиент может случайно позвонить, используя ваниль enum
? Как бы вы ответили на вопросы, поставленные принятым ответом на Какие факторы следует учитывать при написании пользовательского класса исключений?