Как правило, проверяйте существующие исключения .NET Framework на наличие подходящего исключения, прежде чем создавать свое собственное. Чтобы ответить на ваш вопрос напрямую, в данный момент нет исключения «отсутствующие данные», которое можно выдать, но это не означает, что нет подходящих исключений для освещения вашей ситуации.
В вашем случае может подойти скромный InvalidOperationException
; это исключение выдается при вызове метода для объекта, но состояние объекта не подходит для операции. Примеры этого включают вызов методов в закрытом потоке и перечислитель, который прошел конец коллекции. Если данные XML являются внутренним состоянием объекта, и вызов метода обнаружил неверные данные, InvalidOperationException
является хорошим кандидатом.
Если вы передаете свои XML-данные методу, ArgumentException
или одно из его производных может быть подходящим выбором. Существует небольшое семейство этих исключений, все из которых указывают на то, что аргумент, передаваемый методу, не соответствует ожидаемому методу.
Вы захотите создать собственное исключение, только если вы хотите, чтобы исключительное обстоятельство обрабатывалось иначе, чем другие исключения. Если вы решите создать собственное исключение, убедитесь, что оно получено из более высокого исключения, чем Exception
, так что базовый класс подразумевает природу исключения.