Исходный код вики TRY CATCH
Версия 3.7 от Alexandr Fokin на 2023/12/16 14:01
Скрыть последних авторов
| author | version | line-number | content |
|---|---|---|---|
| |
1.1 | 1 | Обработка ошибок в языке T-SQL — конструкция TRY CATCH |
| 2 | https://info-comp.ru/programmirovanie/633-try-catch-in-t-sql.html | ||
| 3 | |||
| |
3.1 | 4 | |
| |
1.1 | 5 | {{code language="sql"}} |
| |
2.1 | 6 | BEGIN TRY |
| |
3.5 | 7 | --Инструкции, в которых могут возникнуть ошибки |
| 8 | DECLARE @TestVar1 INT = 10 | ||
| 9 | DECLARE @TestVar2 INT = 0 | ||
| 10 | DECLARE @Rez INT | ||
| |
2.1 | 11 | |
| |
3.5 | 12 | SET @Rez = @TestVar1 / @TestVar2 |
| |
2.1 | 13 | |
| 14 | END TRY | ||
| 15 | BEGIN CATCH | ||
| 16 | |||
| |
3.5 | 17 | --Информация об exception |
| 18 | print(getdate()) | ||
| 19 | print(ERROR_NUMBER()) | ||
| 20 | print(ERROR_MESSAGE()) | ||
| 21 | print(ERROR_STATE()) | ||
| 22 | print(ERROR_SEVERITY()) | ||
| 23 | print(ERROR_PROCEDURE()) | ||
| 24 | print(ERROR_LINE()) | ||
| |
2.1 | 25 | |
| |
3.5 | 26 | --Если exception отличается от указанной, то выбрасываем его вверх |
| 27 | If ERROR_NUMBER() <> 8134 | ||
| 28 | THROW; | ||
| |
2.1 | 29 | |
| 30 | END CATCH | ||
| |
1.1 | 31 | {{/code}} |