在 try-catch 块中引发错误

RAISERROR 函数将在 TRY CATCH 块中生成错误:

DECLARE @msg nvarchar(50) = 'Here is a problem!'
BEGIN TRY
    print 'First statement';
    RAISERROR(@msg, 11, 1);
    print 'Second statement';
END TRY
BEGIN CATCH
    print 'Error: ' + ERROR_MESSAGE();
END CATCH

第二个参数大于 10 的 RAISERROR(本例中为 11)将在 TRY BLOCK 中停止执行并引发将在 CATCH 块中处理的错误。你可以使用 ERROR_MESSAGE() 函数访问错误消息。此样本的输出是:

First statement
Error: Here is a problem!