《PL/SQL 语言开发参考手册》之六:HANDLE EXCEPTION

《PL/SQL 语言开发参考手册》下载地址        

1、异常分类:                1)ORACLE 预定义,ORACLE 公司对常见的异常都做了预定义
                2)自定义异常
        2、用户自定义异常

 

DECLARE 
...
e_TooManyStudents EXCEPTION; /* 申明异常 EXCEPTION关键字 */
...
BEGIN
...
RAISE e_TooManyStudents; /* 触发异常,抛出异常 RAISE关键字 */
...
EXCEPTION
WHEN e_TooManyStudents THEN /* 捕捉和处理异常 */
... (异常处理代码块)
WHEN OTHERS THEN /* 捕捉和处理所有其他异常 */
... (异常处理代码块)
END;


        3、ORACLE 的预定义异常                1)ORA-0001                        DUP_VAL_ON_INDEX
                2)ORA-0051
                        TIMEOUT_ON_RESOURCE
                3)ORA-1001                        INVALID_CURSOR 无效的游标的异常(NO_DATA_FOUND 异常)
                4)ORA-6533                        SUBSCRIPT_BEYOND_COUNT
                5)......
        4、处理所有的异常

EXCEPTION
... ;
WHEN OTHERS THEN
v_errorCode := SQLCODE;
v_errorText := SUBSTR(SQLERRM,1,200);
INSERT INTO log_file(code,message,info) VALUES(v_errorCode,v_errorText,'ORACLE Error');
END