oracle中,异常有预定义异常,非预定义异常,用户自定义异常。
预定义异常有异常代码、异常名称。
非预定义异常,有错误代码(用户必须事先知道异常代码),没有名称。必须用户自己定义。
非预定义异常:
(1)在定义部分,定义异常名称。
<异常名称> EXCEPTION;
如: FK_EXCEPTION EXCEPTION;
(2)在定义部分,把异常名称与异常代码关联。
PRAGMA EXCEPTION_INIT(<异常名称>,<异常代码>);
如:PRAGMA EXCEPTION_INIT(FK_EXCEPTION,ORA-02292);
(3)在异常处理部分,对异常进行处理。
EXCEPTION
WHEN FK_EXCEPTION THEN
……………….
*/
declare
FK_exception exception;
pragma exception_init(FK_exception,-22921);
begin
update emp set depno = &no where empno = &no2;
exception
when FK_exception then
dbms_output.put_line(‘不符合外键约束’);
end;