Есть ли известная причина, по которой FormatException
не наследуется от ArgumentException
? Неверный формат может показаться очень специфическим случаем аргумента, который является недействительным, подобно ArgumentOutOfRangeException
.
В статье MSDN для класса говорится:
FormatException генерируется, когда формат аргумента в вызове метода не соответствует формату соответствующего типа формального параметра. Например, если метод указывает параметр String
, состоящий из двух цифр с внедренным периодом, передача соответствующего строкового аргумента, содержащего только две цифры, этому методу вызовет выброс FormatException .
Звучит как сценарий для ArgumentException
или производного класса для меня.
Все это означает, что вы не можете иметь дело с FormatException
в более крупном семействе исключений ArgumentException
и не можете определить, какой параметр вызвал исключение.
Есть ли причина, по которой это, казалось бы, неуместное исключение находится там, где оно есть?