-------------异常:在程序运行时出现的错误(前提是:能够运行得起来)
DECLARE
BEGIN
EXCEPTION
--异常处理的部分
--当程序出现异常的时候,做一些相应的操作(比如:写入日志,打印出错误信息)
WHEN 异常名1 THEN
--对应异常处理
WHEN 异常名2 THEN
--对应异常处理
……
WHEN OTHERS THEN ---这一句就能够搞定所有的
--其他异常处理
END;
--比如:当隐式游标的时候出现出现了异常
DECLARE
V_DEPTNO NUMBER := &输入部门编号;
V_ENAME VARCHAR2(10);
BEGIN
SELECT E.ENAME INTO V_ENAME FROM EMP E WHERE E.DEPTNO = V_DEPTNO;
DBMS_OUTPUT.PUT_LINE('姓名:' || V_ENAME);
EXCEPTION
/* WHEN TOO_MANY_ROWS THEN
DBMS_OUTPUT.PUT_LINE(SQLCODE); ---错误码
DBMS_OUTPUT.PUT_LINE(SQLERRM); ---错误信息
DBMS_OUTPUT.PUT_LINE('程序出现了问题'); ---也可以自定义一些错误的信息
WHEN NO_DATA_FOUND THEN
DBMS_OUTPUT.PUT_LINE(SQLCODE); ---错误码
DBMS_OUTPUT.PUT_LINE(SQLERRM); ---错误信息
DBMS_OUTPUT.PUT_LINE('程序出现了问题'); ---也可以自定义一些错误的信息
*/
WHEN OTHERS THEN
DBMS_OUTPUT.PUT_LINE(SQLCODE); ---错误码
DBMS_OUTPUT.PUT_LINE(SQLERRM); ---错误信息
DBMS_OUTPUT.PUT_LINE('程序出现了问题'); ---也可以自定义一些错误的信息
END;
---一般,项目组对于一些出现的异常的,都有自己的处理逻辑/方案,只需要调用相关操作即可