异常
EXCEPTION
预定义异常
系统已经设置好的异常,包含了异常名,异常代码,异常信息组成
CASE NOT FOUND
未知异常:OTHERS
异常信息:SQLERRM
错误代码:SQLCODE
有各种各样的很多异常
捕获异常的语法
DECLAREBEGIN EXCEPTIONWHEN 异常名 THEN要执行的代码WHEN 异常名 THEN要执行的代码WHEN 异常名 THEN要执行的代码------只能捕获到异常,捕获到异常后会执行相应的 代码,但是不会修改异常
END;
如果不知道前面可能会出现什么错误,就用OTHERS捕获异常。
非预定义异常
包含了异常信息和异常代码
语法:
DECLARE异常名 EXCEPTION; ---自己声明一个异常名PRAGMA EXCEPTION_INIT(异常名,异常代码) ---将异常名和现有的异常代码进行绑定BEGINEXCEPTION ---捕获异常WHEN 异常名THEN执行的代码
自定义异常
语法:
DECLARE异常名 EXCEPTION;PRAGMA EXCEPTION_INIT(异常名,-20001~-20999) --只能在-20001~-20999范围内取代码
BEGIN---手动抛出异常RAISE_APPLICATION_ERROR(异常代码,异常信息); ----异常信息是自定义的。EXCEPTIONWHEN 异常名 THEN要执行的代码。
END;