Basically if the error will cause a disconnect, SQL Server can't catch or handle the error, so the calling code will have to.
"The credit belongs to the man who is actually in the arena, whose face is marred by dust and sweat and blood"
- Theodore Roosevelt
Author of:
SQL Server Execution Plans
SQL Server Query Performance Tuning