用户自定义异常

PL/SQL允许根据程序的需要定义自己的异常。用户定义的异常必须声明,然后明确地提出使用一个RAISE语句或程序DBMS_STANDARD.RAISE_APPLICATION_ERROR。

声明一个异常的语法是:

DECLARE
my-exception EXCEPTION;

操作实例源码:

-- Created on 2018/4/2 by E.WANG 
/*
PL/SQL允许根据程序的需要定义自己的异常。
用户定义的异常必须声明,
然后明确地提出使用一个RAISE语句或程序DBMS_STANDARD.RAISE_APPLICATION_ERROR。
*/

DECLARE
/*
创建与属性对应类型的变量;
通过%获取表属性类型
*/
e_empno emp.empno%type;
e_ename emp.ename%type;
e_job emp.job%type;
--定义一个无效的员工编号异常
invalid_empno_expection exception;
BEGIN
--e_empno值为-10
e_empno:=-10;
--给变量赋值
if e_empno<0 then
raise invalid_empno_expection;
else
SELECT ename,job INTO e_ename,e_job
FROM emp
WHERE empno=e_empno;
end if;

--输出对应变量的值
dbms_output.put_line('employee No:' || e_empno || 'employee Name: '|| e_ename || 'employee Position: ' || e_job);
exception
when invalid_empno_expection then
dbms_output.put_line('Emno must be greater than zero!');
when no_data_found then
dbms_output.put_line('No such customer!');
when others then
dbms_output.put_line('Error!');

END;

运行结果截图:

PL/SQL 用户自定义异常操作实例_PL/SQL 用户自定义异常