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.