Это зависит от того, является ли наличие дубликата исключительным сценарием или случаем бизнес-логики.
Например, проверка уникального адреса электронной почты / имени пользователя во время регистрации является делом бизнес-логики, и проверку следует выполнить перед попыткойвставить
Если вам необходимо указать, какое именно поле не сработало с уникальным ограничением, лучше проверить его заранее, а не перехватывать исключение.Перехват исключения не дает вам важной детали - какое поле не удалось.
Есть способы получить эту информацию, основываясь на исключении, но она очень утомительна и специфична для базы данных (ищите ограничениеимя в БД (специфично для БД), получить поле, к которому он применяется, сопоставить поле со свойством объекта)