zoukankan      html  css  js  c++  java
  • Oracle PL/SQL开发基础(第三十四弹:RAISE_APPLICATION_ERROR)

    RAISE_APPLICATION_ERROR在子程序内部使用时,能从存储子程序中抛出自定义的错误消息。这样就能将错误报告给应用程序而避免范围未捕获异常。

    语法如下:

    1 RAISE_APPLICATION_ERROR(error_number, error_message, [keep_errors]);

    error_number是范围在-20000到-20999之间的负整数,error_message是最大长度为2048字节的字符串,keep_errors是一个可选的布尔值,True表示新的错误将被添加到已经抛出的错误列表中,False表示新的错误将替换当前的错误列表,默认为False。

    RAISE_APPLICATION_ERROR只能在存储的子程序中调用。当被调用时,将结束当前的子程序并返回一个用户自定义的错误代码和错误消息给应用程序,这些错误代码和错误消息可以像任何的Oracle错误一样被捕获。

    看一个例子:

     1 CRAETE OR REPLACE PROCEDURE  registeremployee(...)
     2 AS
     3     ...
     4 BEGIN
     5     IF ... THEN
     6         RAISE_APPLICATION_ERROR(-20000, '员工编号不能为空');
     7     ELSIF ... THEN
     8         RAISE_APPLICATION_ERROR(-20001, '员工已存在');
     9     END IF;
    10     ...
    11 EXCEPTION 
    12     WHEN OTHERS THEN
    13         RAISE_APPLICATION_ERROR(-20003, '插入数据时出现错误!异常编码:' 
    14                                          || SQLCODE 
    15                                          || '异常描述:'
    16                                          || SQLERRM);
    17 END;

    别的子程序或语句块调用这个过程时,如果有相应的异常,就会像普通的Oracle错误一样被捕获。

    作者:艺术就是爆炸
    来源:CSDN
    原文:https://blog.csdn.net/lianjiww/article/details/77074979
    版权声明:本文为博主原创文章,转载请附上博文链接!

     

  • 相关阅读:
    从Delegate.CreateDelegate看值类型的实例方法
    c#编译器如何处理匿名委托
    线程静态的几个特点
    Framework 3.5学习笔记
    看看给我用的基类,还有多少人愿意做下去
    .net里面数组的复制
    装饰模式与大接口的装饰模式的思考
    SingleTon的实现与性能
    特性与方法注入
    CLR与浮点数
  • 原文地址:https://www.cnblogs.com/sunice/p/9878223.html
Copyright © 2011-2022 走看看