Простого абсолютного ответа не существует. Это зависит от потребностей пользователя.
Как правило, вы должны поймать исключение, если вы собираетесь восстановить и продолжить обработку . Там может быть много причин, почему вы хотите сделать это. Например, некоторые ошибки могут быть переходными , что означает, что вы можете добиться успеха, если немного подождете (например, ошибка сети). В этом случае разумно перехватить исключение и повторить попытку через некоторое время. Или, если ваше приложение представляет собой игру, может быть более выгодным продолжать работу, даже если есть ошибка (потому что даже если ваше приложение ведет себя плохо, оно не может нанести серьезного вреда - в этом случае вы можете захотеть продолжить. Onи надеюсь, что ошибка не сильно повлияет на игровой процесс).
В других ситуациях лучше прекратить обработку (или даже приложение) . Например, если вы выполняете пакетное задание и возникает исключение утверждения (поскольку заданное вами допущение было нарушено), то часто бывает лучше провалить задание, чтобы можно было провести расследование (вместо того, чтобы позволить ему продолжить и потенциально допустить ошибку). результаты остаются незамеченными и вызывают большие проблемы позже).
Теперь, возвращаясь к вашему примеру, это зависит от контекста. Не зная вашего контекста, я мог бы предложить поймать его и показать решение пользователю («Вы должны удалить все заказы клиента X, прежде чем сможете удалить этот клиент!» И т. Д.). Но вы должны судить об этом сами, основываясь на анализе ситуации в бизнесе.