在PL / SQL中,警告或错误情况称为异常。
异常可以在内部定义(由运行时系统定义),也可以由用户定义。
运行时错误(例如堆栈溢出或被零除)将停止正常处理,并将控制权返回给操作系统。
在PL / SQL中,异常处理机制使用户可以捕获此类条件,
这样它可以在出现错误的情况下继续运行。
一些常见的内部异常具有预定义的名称,例如ZERO_DIVIDE和STORAGE_ERROR。
其他内部异常可以给定名称。
可以在任何PL / SQL块,子程序或程序包的声明部分中定义异常。
与内部异常不同,必须为用户定义的异常指定名称。
发生错误时,将引发异常。
也就是说,正常执行停止,并且控制权转移到PL / SQL块或子程序的异常处理部分。
内部异常由运行时系统隐式(自动)引发。
用户定义的异常必须通过RAISE语句显式引发,这也可以引发预定义的异常。
预定义的命名异常列表
===================================
1.cursor_already_open
2. invalid_cursor
3.dup_val_on_index
4.invalid_number
5.no_data_found
6.too_many_rows
7.value_error
8.zero_divide
9.login_denied
10.not_logged_on
11.program_error
12.存储错误
13.timeout_on_resource
14.rowtype_mismatch
15.case_not_found
16.access_into_null
17.collection_is_null
18.rowtype_mismatch
19.self_is_null
20.subscript_beyond_count
21.subscript_outside_limit
22.sys_invalid_rowid
23,其他
还要检查
例外-2From: https://bytes.com/topic/oracle/insights/748297-exceptions-1-a