Я бы не использовал исключения для обработки ошибок пользователя или нормального выполнения программы.Просто проверьте, может ли пользователь удалить записи (используя, может быть, хранимую процедуру), и если не показывает ей сообщение с предупреждением.
Я думаю, что исключения касаются ошибок, которые вы не можете предвидеть.
изменить, чтобы уточнить:
Хранимая процедура (или код в вашей программе) может выполнять проверки всех задействованных таблиц или itможет даже COUNT()
сколько записей будет затронуто запросом на удаление.Подсчитав, вы получаете дополнительное преимущество, сообщая пользователю , сколько предметов инвентаря связано с делом, в вашем примере:
"Вы не можете удалить это дело , поскольку он по-прежнему содержит 32 предмета. "
изменить, чтобы уточнить больше:
Это не означает, что ссылочная целостность не должнабыть правильно настроенным в БД, конечно.Если вы забыли некоторые проверки, у вас есть БД, которая работает для вас (и пользователь позвонит вам, чтобы узнать, что, черт возьми, говорит программа :)).