Обработка Sql Custom Exception
Как идентифицировать пользовательское сообщение об ошибке, вызванное хранимой процедурой sql, с кодом C#?
Хранимая процедура, ошибка будет возникать так
RAISERROR (N'This is message %s %d.', -- Message text.
10, -- Severity,
1, -- State,
N'number', -- First argument.
5); -- Second argument.
Из приведенного выше, как определить, что ошибка является пользовательским сообщением об ошибке. (т.е.) как то так
try{
--actual code here
}
catch(SqlException ex)
{
--how to check here that the exception is custom one
}
1 ответ
Решение
При возникновении ошибки вы можете указать MessageId вместо текста сообщения. Этот номер будет найден в Number
Свойство Исключения:
SQL:
RAISERROR(50001, 12, 1)
C#:
if (sqlException.Number == 50001)
{
throw new CustomSQLException(//whatever);
}