У меня есть около 3-4 хранимых процедур - которые я могу изменить при необходимости - которые используют RAISERROR
, чтобы сообщить моему приложению о некоторых фатальных ошибках на стороне базы данных. Некоторые из этих хранимых процедур выполняются со стороны C # с помощью ExecuteNonQuery
, а другие - с ExecuteReader
. В данный момент я обертываю эти команды в блок try { ... } catch (SqlException ThisSqlException) { ... }
, но проблема в том, что это исключение будет выдано как минимум в двух сценариях, с которыми мне придется иметь дело отдельно:
1) Ошибки с самим соединением или с ошибочными или несоответствующими параметрами; и
2) Ошибки, возникающие при явном использовании RAISERROR
.
Поскольку это приложение WCF, я должен вернуть клиентскому приложению различную обратную связь, основанную на характере исключения (независимо от того, была ли это команда RAISERROR
или нет). Как тогда я могу различить обе ситуации?