1,异常:编译时异常和运行时异常
编译时异常相当于Java中的编译失败,语法错误之类,运行时异常相当于Java中的unchecked异常,oracle没有checked异常。
2,异常的分类:
预定义异常:oracle预定义的异常,如no_data_found等,oracle可自动触发,该类异常有21个。
非预定义异常:oracle可自动触发,但是该类异常只有错误代码,没有异常名称,用户无法捕捉。-00001~-02049之间除去预定义的21个,其余全是。
自定义异常:用户根据自己业务自己定义的异常。oracle允许使用的异常代码范围:-20001~-20999,超过该范围会报ORA-21000错误
ORA-21000: error number argument to raise_application_error of [xxxx] is out of range
3,处理异常常用的方法:
SQLCODE:oracle内置对象,返回错误代码,没有错误时返回0。
SQLERRM:oracle内置对象,返回错误消息。
exception_name EXCEPTION:自定义异常名称。
PRAGMA EXCEPTION_INIT (exception_name, -2292);:将自定义的异常和oracle特定的异常关联起来。可用于关联非预定义异常,进行捕捉处理
RAISE_APPLICATION_ERROR:抛出异常,相当于Java中的throw e,终止程序执行。
4,异常的传递:
同Java中异常传递一致