Could you hire me? Contact me if you like what I’ve done in this article and think I can create value for your company with my skills.

December 21, 2006 / by Zsolt Soczó

Mikor megy vissza a RAISERROR kimenete a kliensre (SQL Server 2005)?

When RAISERROR is run with a severity of 11 or higher in a TRY block, it transfers control to the associated CATCH block. The error is returned to the caller if RAISERROR is run:
·         Outside the scope of any TRY block. (még szép)
·         With a severity of 10 or lower in a TRY block. (Infómessage-eket nem nyeli le, azok visszamennek, mint rowcount vagy print kimenete)
·         With a severity of 20 or higher that terminates the database connection. (érthető)

 

Azaz a TSQL try/catch lenyeli a hibákat, hasonlóan, mint ahogy a C# try/catch lenyel egy exceptiont. A catchben aztán raiserrorral lehet saját hibát visszaadni a hívónak, ala rethrow. Valamiért az én fejemben (valamelyik beta alapján) az volt, hogy a try/catch ellenére is visszamennek a hibák a kliensre, de szerencsére ez nem így van. Örülünk.

Could you hire me? Contact me if you like what I’ve done in this article and think I can create value for your company with my skills.