您的位置:首页 > 数据库 > Oracle

Oracle PL/SQL开发基础(第三十四弹:RAISE_APPLICATION_ERROR)

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

语法如下:

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错误一样被捕获。

看一个例子:

CRAETE OR REPLACE PROCEDURE  registeremployee(...)
AS
...
BEGIN
IF ... THEN
RAISE_APPLICATION_ERROR(-20000, '员工编号不能为空');
ELSIF ... THEN
RAISE_APPLICATION_ERROR(-20001, '员工已存在');
END IF;
...
EXCEPTION
WHEN OTHERS THEN
RAISE_APPLICATION_ERROR(-20003, '插入数据时出现错误!异常编码:'
|| SQLCODE
|| '异常描述:'
|| SQLERRM);
END;


别的子程序或语句块调用这个过程时,如果有相应的异常,就会像普通的Oracle错误一样被捕获。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: