《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