Aaron Bertrand on why TSQL statement END TRY cannot have a semicolon:
"The reason, while not intuitive, is that TRY/CATCH is one statement "block," and there is no functional reason to terminate END TRY - since no statement is valid between END TRY and BEGIN CATCH. But this is an exception that shouldn't discourage you from trying."
https://www.sentryone.com/blog/aaronbertrand/bad-habits-semi-colons-schema-prefix