You should read this:
http://www.sommarskog.se/error-handling-I.html
I can’t recommend that link highly enough. It’s a bit long, but in a good way.
There’s a disclaimer at the front that it was originally written for SQL Server 2000, but it covers the new try/catch error handling abilities in SQL Server 2005+ as well.