I have some 3-4 stored procedures ― which I can modify if needed ― that use RAISERROR
to inform my application of some fatal errors on the database side. Some
The RAISERROR command includes a msg_id parameter, which can be used to identify the type of error. This value is supplied to the application through the SqlException.Number property. In this way, you can identify any exception raised by a stored procedure that includes a custom error message that is defined in the system.
If RAISERROR
is called with a text string error message, then Number
will be 50000.
When you catch a SqlException
, you can inspect its Errors
collections which contains the detailed error messages.
Those SqlError objects contained very detailed information - including error code, message and so forth.
Using that information, you should be able to easily distinguish between connection-based errors, or errors that your raise yourself.