The newly added try catch in sql server 2005 can easily catch exceptions. I will take a look at it today and summarize the key points as follows
Basic usage BEGIN TRY
{ sql_statement |
statement_block }
END TRY
BEGIN CATCH
{ sql_statement |
statement_block }
END CATCH
is similar to the exception handling usage in ordinary languages, but it should be noted that SQL SERVER only catches exceptions that are not serious. , when an exception such as the database cannot be connected is an example that cannot be caught: BEGIN TRY
DECLARE @X INT
-- Divide by zero to generate Error
SET @X = 1/0
PRINT 'Command after error in TRY block'
END TRY
BEGIN CATCH
PRINT 'Error Detected'
END CATCH
PRINT 'Command after TRY/CATCH blocks'
Also try catch can be nested Begin TRY
delete from GrandParent where Name = 'John Smith'
print 'GrandParent deleted successfully'
End Try
Begin Catch
Print 'Error Deleting GrandParent Record'
Begin Try
delete from Parent where GrandParentID =
(select distinct ID from GrandParent where Name = 'John Smith')
Print 'Parent Deleted Successfully'
End Try
Begin Catch
print 'Error Deleting Parent'
Begin Try
delete from child where ParentId =
(select distinct ID from Parent where GrandParentID =
(select distinct ID from GrandParent where Name = 'John Smith' ))
print 'Child Deleted Successfully'
End Try
Begin Catch
Print 'Error Deleting Child'
End Catch
End Catch
End Catch
Also, In the exception mechanism, SQL SERVER 2005 provides error class methods to facilitate debugging. The excerpt is as follows. It is relatively simple and will not be explained. ERROR_NUMBER(): Returns a number associated with the error.ERROR_SEVERITY(): Returns the severity of the error. ERROR_STATE(): Returns the error state number associated with the error.ERROR_PROCEDURE(): Returns the name of the stored procedure or trigger in which the error occurred.ERROR_LINE(): Returns the line number inside the failing routine that caused the error. ERROR_MESSAGE(): Returns the complete text of the error message. The text includes the values supplied for any substitutable parameters, such as lengths, object names, or times. The final example is as follows, using the error class method BEGIN TRY