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