In this class we are discussing about where and when we use RAISERROR and THROW
https://drive.google.com/drive/u/2/fo...
-- THROW AND RAISEERROR Both statements can be used to generates custom errors
--syntax for THROW
--THROW [Error_number,message,state];
BEGIN TRY
select 1/0
END TRY
BEGIN CATCH
THROW 50000,'divide by error',1;
END CATCH;
--SELECT * FROM master.dbo.sysmessages where description like '%zero%'
-- RAISEERROR
BEGIN TRY
IF(1=1)
RAISERROR('SOME ERROR',11,1)
END TRY
BEGIN CATCH
DECLARE @ErrorMessage VARCHAR(MAX),
@ErrorSeverity int,
@ErrorState INT
select @ErrorMessage =ERROR_MESSAGE(),
@ErrorSeverity =ERROR_SEVERITY(),
@ErrorState = ERROR_STATE();
RAISERROR(@ErrorMessage,@ErrorSeverity,@ErrorState);
END CATCH;
--------------------------------------
-- select * from master.dbo.UserDetails
CREATE PROC dbo.USERDETAILS @UserName VARCHAR(MAX)
AS
BEGIN TRY
IF (SELECT COUNT(1) FROM master.dbo.UserDetails WHERE UName= @UserName)=0
RAISERROR ('user Doesnt Exists.',11,1)
--INSERT INTO SalesData
END TRy
BEGIN CATCH
DECLARE @ErrorMessage VARCHAR(MAX),
@ErrorSeverity int,
@ErrorState INT
select @ErrorMessage =ERROR_MESSAGE(),
@ErrorSeverity =ERROR_SEVERITY(),
@ErrorState = ERROR_STATE();
INSERT INTO dbo.DB_Errors values (suser_name(),ERROR_NUMBER(),ERROR_STATE(),ERROR_SEVERITY(),ERROR_LINE(),ERROR_PROCEDURE(),ERROR_MESSAGE(),GETDATE())
RAISERROR(@ErrorMessage,@ErrorSeverity,@ErrorState);
end catch
EXEC dbo.USERDETAILS 'lALITHA'
SELECT * FROM DB_Errors
#sqlserver #database #dataanalytics #dbms #views #sql #tech2bi #exceptionhandling #try #catch #errorhandling#RAISEError#tech2bi