一:说明
Oracle数据库底册定义了很多异常,每个异常都有一个唯一的编码,这些异常之中,有一些是常见的,Oracle给这些异常定义了名称,可以直接使用,其他没有名称直邮编码的不能直接使用。
二:分类
1)预定义异常
既有编码又有名称的异常是预定义异常,此类异常可以直接使用
2)非预定义异常
有编码但没有名称的异常是非预定义异常,此类异常不能直接使用,要想使用需要先声明一个异常名与编码绑定。
3)自定义异常
既没有编码又没有名称的异常是自定义异常,此类异常需要我们自己定义。
三:异常的使用
1)预定义异常的使用
a.语法
exception
when 异常名 then
--异常处理
b.练习:使用two_many_rows预定义异常
declare
a number;
begin
select sal into a from emp;
exception
when too_many_rows then
dbms_output.put_line('多行对一行,不可以');
end;
/
2)非预定义异常的使用
a.语法
declare
--声明异常
异常名 exception;
--绑定异常编码
pragma exception _init(异常名,编码);
begin
exception
when 异常名 then
--异常处理
end;
/
3) 自定义异常的使用
a、语法
declare
--声明异常
异常名 exception;
begin
--某条件发生时,抛出异常
raise 异常名;
exception
when 异常名 then
--异常处理
end;
/