Как отмечается в комментариях, этого можно избежать, поэтому следует поступить правильно и убедиться, что это не может произойти в первую очередь.
И, как вы уже догадались, использование статического текста - это плохо. Это еще более верно, если учесть, что эти сообщения будут меняться в зависимости от ЯЗЫКА, с которым установлен SQL Server, или от того, что пользователь вошел в систему (поскольку сообщения SQL чувствительны к локали), независимо от уровня обновления.
Кроме того ... Я не совсем понимаю, почему вы хотите продолжить, даже если эта ошибка выдается, как будто она переводит ваши данные в несогласованное состояние, поэтому я проверю, выполняете ли вы правильная вещь в первую очередь. Однако я не знаю ваше заявление ...
Итак, со всеми этими оговорками ... в том случае, если избежать этого невозможно (по любой причине - исключая лень :-)), вместо того, чтобы поймать общий Exception
, вы должны поймать SqlException
, который включает в себя свойства State
и Number
, которые вы можете использовать дословно.