In general I would say that you should wrap just about everything in a Try/Catch block. So, you sould wrap everything, including your validation code. Here is a quick example:CREATE PROCEDURE dbo.MySproc(@MyDate DATETIME)ASSET NOCOUNT ONBEGIN TRY -- Validation IF (@MyDate IS NULL) BEGIN RAISERROR(N'Parameter "@NotificationEventUID" cannot be NULL.', 16, 1, OBJECT_NAME(@@PROCID)) END INSERT MyTable (MyDate) VALUES (@MyDate) END TRYBEGIN CATCH -- Handle errorEND CATCH