Я бы следовал инструкциям MSDN по выявлению и обработке ошибок , в частности
В большинстве случаев используйте предопределенные типы исключений. Определять новые типы исключений можно только для программных сценариев, когда предполагается, что пользователи вашей библиотеки классов будут перехватывать исключения этого нового типа и выполнять программные действия на основе самого типа исключения ...
В вашем первом случае, когда файл является частью конфигурации вашего приложения, я бы предположил, что вы не ожидаете, что пользователи поймут и обработают это конкретное исключение, поэтому я бы использовал предопределенный ConfigurationErrorsException
.
В других случаях я бы также попытался использовать предопределенное исключение, если только вы не ожидаете, что клиентам придется обрабатывать это исключение по-другому. .NET 3.5 FileFormatException
, как предлагают другие, кажется хорошим выбором. Вы также можете использовать (злоупотреблять?) Такой тип, как System.Data.DataException, даже если его документация действительно не соответствует вашей ситуации. Или пользовательский тип исключения, если вас это не устраивает, но в любом случае запишите типы исключений, которые вы выбрасываете, и обстоятельства, при которых вы их выбрасываете, и я уверен, что ваши пользователи будут счастливы.