CAN YOU BELIEVE THAT HOT MESS IN YESTERDAY’S POST?!?
I know, right? You thought that by combining try/catch with a transaction, you’d get robust error handling. Instead, you ended up with half the tables populated, and a leftover open transaction. You’d already forgotten Tuesday’s post in which I pointed out that TRY/CATCH doesn’t catch low severity or high severity errors.
TRY/CATCH and transactions are turkeys.
And two turkeys don’t make an eagle.
For a better experience, you need the Turkey Sandwich approach to transaction and error handling. You have to surround those turkeys with two key pieces of code: