Я пишу некоторый код доступа к данным и хочу проверить наличие потенциально «недопустимых» состояний данных в базе данных. Например, я возвращаю виджет из базы данных и ожидаю только одного. Если я получу два, я хочу бросить исключение. Несмотря на то, что ссылочная целостность должна предотвращать это, я не хочу зависеть от администраторов баз данных, никогда не меняющих схему (чтобы прояснить это, если ограничение первичного ключа снято, и я получаю дурак, я хочу быстро и четко разобраться).
Я хотел бы использовать исключение System.IO.InvalidDataException, за исключением того, что я не имею дело с файловым потоком, поэтому это может ввести в заблуждение. Я закончил тем, что пошел с общим исключением приложения. У кого-нибудь есть идея получше?