|
|||
Перехват исключенийПерехват исключений
- обрабатываем ошибку деления на ноль без перехвата исключения, получаем корректные данные и сообщение об ошибке:
DECLARE @S FLOAT = 100 DECLARE @C INT = 0 DECLARE @R FLOAT = 0 SET @R = @S/@C --SELECT @@ERROR IF @@ERROR > 0 SET @R = NULL SELECT @R AS [R]
- обрабатываем ошибку деления на ноль перехватом исключения, получаем корректные данные без сообщения об ошибке:
BEGIN TRY SET @R = @S/@C END TRY BEGIN CATCH SET @R = NULL --SELECT ERROR_SEVERITY() END CATCH SELECT @R AS [R]
- обрабатываем ошибку деления на ноль перехватом исключения с проверкой типа исключения:
SET @R = @S/0 SET @R = @S/'sfhgjh' SET @R = @S/10 /* … */ IF ERROR_NUMBER() = 8134 SET @R = NULL ELSE PRINT 'ERROR!'
|
|||
|