Sql Exception Handling & Throw Exception

-- =============================================
-- Author:  Fu hongcheng
-- Create date: 2008-11-19
-- Description: re-raise error, error message formated
-- =============================================
ALTER PROCEDURE [Common].[usp_Common_RethrowError]
AS
BEGIN
 SET NOCOUNT ON;

 IF ERROR_NUMBER() IS NULL
   RETURN ;

 DECLARE @ErrorMessage NVARCHAR(4000);
 DECLARE @ErrorNumber INT;
 DECLARE @ErrorSeverity INT;
 DECLARE @ErrorState INT;
 DECLARE @ErrorLine INT;
 DECLARE @ErrorProcedure NVARCHAR(200) ;

 SELECT  @ErrorNumber = ERROR_NUMBER(), @ErrorSeverity = ERROR_SEVERITY(),
  @ErrorState = ERROR_STATE(), @ErrorLine = ERROR_LINE(),
  @ErrorProcedure = ISNULL(ERROR_PROCEDURE(), '-') ;

 -- Building the message string that will contain original error information.
 SELECT  @ErrorMessage = N'Error %d, Level %d, State %d, Procedure %s, Line %d, ' +
  'Message: ' + ERROR_MESSAGE() ;
 -- Raise an error: msg_str parameter of RAISERROR will contain
 -- the original error information.
 RAISERROR (@ErrorMessage, @ErrorSeverity, 1,
  @ErrorNumber, -- parameter: original error number.
  @ErrorSeverity, -- parameter: original error severity.
  @ErrorState, -- parameter: original error state.
  @ErrorProcedure, -- parameter: original error procedure name.
  @ErrorLine-- parameter: original error line number.
  ) ;
END

posted @ 2010-05-17 14:51  Alex Tian  阅读(210)  评论(0编辑  收藏  举报