RAISERROR ― Как различать с помощью SqlException?

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

1) Ошибки самого соединения, неисправных или несоответствующих параметров; и

2) Ошибки, которые возникают всякий раз, когда я явно использую RAISERROR .

Поскольку это приложение WCF, я должен вернуть клиентскому приложению различную обратную связь в зависимости от характера исключения (будь то произошло из-за команды RAISERROR или нет). Как же тогда отличить обе ситуации?

9
задан Amy 28 June 2011 в 15:52
поделиться