`

raiseerror的用法

 
阅读更多
1.RAISERROR

返回用户定义的错误信息并设系统标志,记录发生错误。通过使用 RAISERROR 语句,客户端可以从 sysmessages 表中检索条目,或者使用用户指定的严重度和状态信息动态地生成一条消息。这条消息在定义后就作为服务器错误信息返回给客户端。

2.语法:
引用

RAISERROR ( { msg_id | msg_str | @local_variable }
    { ,severity ,state }
    [ ,argument [ ,...n ] ] )
    [ WITH option [ ,...n ] ]


3.参数:

1)msg_id

    使用 sp_addmessage 存储在 sys.messages 目录视图中的用户定义错误消息号。用户定义错误消息的错误号应当大于 50000。如果未指定 msg_id,则 RAISERROR 引发一个错误号为 50000 的错误消息。
2)msg_str

    用户定义消息,格式与 C 标准库中的 printf 函数类似。该错误消息最长可以有 2,047 个字符。如果该消息包含的字符数等于或超过 2,048 个,则只能显示前 2,044 个并添加一个省略号以表示该消息已被截断。请注意,由于内部存储行为的缘故,代替参数使用的字符数比输出所显示的字符数要多。例如,赋值为 2 的代替参数 %d 实际在消息字符串中生成一个字符,但是还会在内部占用另外三个存储字符串。此存储要求减少了可用于消息输出的字符数。当指定 msg_str 时,RAISERROR 将引发一个错误号为 50000 的错误消息。

3)@local_variable

    是一个可以为任何有效字符数据类型的变量,其中包含的字符串的格式化方式与 msg_str 相同。@local_variable 必须为 char 或 varchar,或者能够隐式转换为这些数据类型。

4)severity

    用户定义的与该消息关联的严重级别。当使用 msg_id 引发使用 sp_addmessage 创建的用户定义消息时,RAISERROR 上指定的严重性将覆盖 sp_addmessage 中指定的严重性。
    任何用户都可以指定 0 到 18 之间的严重级别。只有 sysadmin 固定服务器角色成员或具有 ALTER TRACE 权限的用户才能指定 19 到 25 之间的严重级别。若要使用 19 到 25 之间的严重级别,必须选择 WITH LOG 选项。

4.简单例子:
引用

BEGIN TRY
    -- RAISERROR with severity 11-19 will cause execution to
    -- jump to the CATCH block.
    RAISERROR ('Error raised in TRY block.', -- Message text.
               16, -- Severity.
               1 -- State.
               );
END TRY
BEGIN CATCH
    DECLARE @ErrorMessage NVARCHAR(4000);
    DECLARE @ErrorSeverity INT;
    DECLARE @ErrorState INT;

    SELECT
        @ErrorMessage = ERROR_MESSAGE(),
        @ErrorSeverity = ERROR_SEVERITY(),
        @ErrorState = ERROR_STATE();

    -- Use RAISERROR inside the CATCH block to return error
    -- information about the original error that caused
    -- execution to jump to the CATCH block.
    RAISERROR (@ErrorMessage, -- Message text.
               @ErrorSeverity, -- Severity.
               @ErrorState -- State.
               );
END CATCH;


参考:http://msdn.microsoft.com/zh-cn/library/ms178592.aspx
分享到:
评论

相关推荐

    Python新手学习raise用法

    当程序出现错误时,系统会自动引发异常。...raise 语句有如下三种常用的用法: raise:单独一个 raise。该语句引发当前上下文中捕获的异常(比如在 except 块中),或默认引发 RuntimeError 异常。 raise 异常

    Delphi ExceptionErrorMessage函数应用:抛出异常.rar

    本源码演示使用Delphi 中的ExceptionErrorMessage函数,抛出异常信息,该函数用于获取当前异常信息。本源码其实就是ExceptionErrorMessage函数的用法示例,异常处理在程序中很常见,一个优秀的程序,异常处理是不能...

    python raise的基本使用

    下面我们将深入探讨`raise`的使用方法。 1. **异常的自动引发与手动引发** 当Python程序遇到错误时,如除以零、访问不存在的变量等,会自动引发异常。而`raise`关键字则允许我们根据条件或逻辑在代码中主动引发...

    Angry_raise:以情感和强度引发Ruby异常

    用法 require "angry_raise" raise! "an error occured" # "RuntimeError: an error occured!" raise! SomeError , "an error occured" # "SomeError: an error occured!" raise! SomeError . new ( "an error ...

    Python中的异常处理try/except/finally/raise用法分析

    ### Python中的异常处理try/except/finally/raise用法分析 #### 一、异常处理概述 在编程过程中,经常会遇到一些不可预知的情况,这些情况会导致程序无法继续正常执行,这种情况被称为异常。为了确保程序的健壮性...

    VBScript中On Error语句用法小结

    在上面的代码示例中,通过`Raise`方法人为触发了一个“溢出”错误,然后设置Err对象的属性,以便在处理错误时提供更详细的帮助信息。通过检查`Err.Number`,我们可以判断是否真的发生了错误,如果发生了错误,可以...

    Oracle中RAISE异常深入分析

    显式抛出异常是程序员处理声明的异常的习惯用法,但RAISE不限于声明了的异常,它可以抛出任何任何异常。例如,你希望用TIMEOUT_ON_RESOURCE错误检测新的运行时异常处理器,你只需简单的在程序中使用下面的语句: ...

    SQL Server中解决死锁的新方法介绍

    SQL Server 2005 有一个 RaiseError 语句,可以抛出异常,但却不能直接抛出原来的异常,所以需要重新定义发生的错误。 解决方案变成了这样: ```sql declare @r int set @r = 1 while @r begin begin tran ...

    用异常处理知识解决requests中的ConnectionError

    总的来说,处理`requests`库中的`ConnectionError`需要结合异常处理、重试机制以及适当的错误排查方法。在实践中,不断地试验和学习是解决这类问题的关键。如果遇到难以解决的问题,可以参考官方文档、社区讨论或...

    Oracle游标使用方法及语法大全

    自定义异常可以通过`RAISE_APPLICATION_ERROR`函数创建,然后在异常处理块中捕获并处理。 **动态游标**和**动态SELECT语句**适用于处理不确定的查询结构,它们允许在运行时构建SQL语句。这在处理动态条件或未知列...

    Python语言中面向对象属性使用方法的探讨.zip

    本讨论将深入探究Python中面向对象属性的使用方法,包括类的定义、对象的创建、属性的访问、属性的封装以及特殊方法如`__init__`和`__getattr__`等。 首先,我们需要了解类(Class)是面向对象编程的基础,它是创建...

    两种方案成功解决 KeyError: ‘xxx does not support field: _id’

    这样,`_id`字段就成为`Item`类的一部分,你可以在爬虫中直接使用它,而不会引发`KeyError`。 以上两种解决方案都可以有效处理`KeyError: ‘xxx does not support field: _id’`的问题。选择哪种方法取决于你的具体...

    关于perl DBI的方法使用

    `%attr`是连接属性,如`PrintError`和`RaiseError`控制错误处理。`disconnect()`方法用于关闭数据库连接。 4. 数据库句柄方法: - `do()`:执行非SELECT类型的SQL语句,如INSERT、UPDATE或DELETE,返回受影响的...

    pb函数详解(系统函数功能和使用说明)

    在错误处理中,`RaiseError()`能帮助我们主动抛出错误并提供详细信息。 总结,PB的系统函数是其强大功能的重要组成部分,理解并熟练运用这些函数能够提高开发效率,简化代码编写,从而更好地服务于各种复杂的应用...

    code_error:基于代码的自定义错误

    用法基本的继承 CodeError::Base 以创建您自己的基于代码的错误。 您需要使用散列分配“error_codes”以定义您自己的错误代码映射。 class MyError < CodeError::Base error_codes({ purchase_info_incorrect: { ...

    sql server数据库中raiserror函数用法的详细介绍

    sql server数据库中raiserror函数的用法 server数据库中raiserror的作用就和asp.NET中的throw new Exception一样,用于抛出一个异常或错误。这个错误可以被程序捕捉到。 raiserror的常用格式如下: raiserror(‘错误...

    pytorch模型提示超出内存RuntimeError: CUDA out of memory.

    跑模型时出现RuntimeError: CUDA out of memory.错误 查阅了许多相关内容,原因是:GPU显存内存不够 简单总结一下解决方法: 将batch_size改小。 取torch变量标量值时使用item()属性。 可以在测试阶段添加如下代码:...

    PERL_DBI手册.pdf

    总体而言,DBI手册是一份详尽的参考资料,它不仅覆盖了DBI模块的使用方法,还包括了大量关于数据库操作的最佳实践和注意事项,对于任何希望提高Perl数据库编程能力的开发者来说,这份手册都是一个宝贵的资源。

Global site tag (gtag.js) - Google Analytics