Рассмотрим следующий пример: в рамках настройки моей программы пользователь предоставляет XML-файл, который, по сути, должен описывать ациклический граф, но моя программа находит граф при его загрузке. Это критическая ошибка, программа не может продолжать работу. Какое исключение должно быть выброшено?
Другие примеры включают попытку загрузить файл в определенном формате (скажем, JPEG), но при этом возникает ошибка; или получение некоторых данных по сети от другой сторонней программы, которые должны быть правильными, но это не так.
По сути - вы разбираете какой-то поток данных и находите в нем ошибку, которой быть не должно, а это значит, что программа не может продолжаться как положено. Какой правильный тип исключения здесь?
(Примечание. Это не должно быть исключением ArgumentXXXException, поскольку эти данные не передаются в качестве параметра методу).