Be careful of the hanging transaction state if the try catch assignment fails. If you're using explicit transactions or nested proc calls, you can end up in a situation where you get
The current transaction cannot be committed and cannot support operations that write to the log file. Roll back the transaction.
I still very much like schema validation (especially on variables) but there's certainly some funk with them.