It depends on the severity of the error. Higher severity errors cause a disconnect of the offending process. Those cannot be trapped.
For the other procedures, in SQL Server 2005, you can use TRY/CATCH constructs to get the job done. This is an introduction to the topic[/url], but there's a lot more to learn.