Tengo un procedimiento almacenado en un servidor SQL Server 2005 base de datos que tiene una sentencia como esta:SQL Server RAISERROR no causar excepción en cliente .NET
IF @Condition = 0
BEGIN
RAISERROR('some error message',16,1)
RETURN
END
y se llama desde un # C del cliente, así:
try
{
SomeVariable = SqlHelper.ExecuteScalar(GetConnectionString(), "MySP", new object[] { param1, param2});
}
catch (SqlException e)
{
Console.WriteLine(e.Message);
}
Sin embargo, no hay excepciones. La condición en el SP siempre es verdadera para las pruebas. Para verificar esto, copié la llamada de SQL Server Profiler y la ejecuté en una ventana de consulta y se imprimió ErrorMessage, lo que significa que se produjo el error.
No estoy seguro de lo que está sucediendo.
¿Ha intentado poner un punto de interrupción en su declaración catch, para ver si incluso se está ejecutando? –
Sí. Así es como descubrí que no está funcionando. – Abdu