PL/SQL 异常
Posted
技术标签:
【中文标题】PL/SQL 异常【英文标题】:PL/SQL Exceptions 【发布时间】:2014-07-10 09:47:08 【问题描述】:begin
begin
do something;
exception
when no_data_found then
raise_application_error(-20000,"Message");
end;
exception
when others then
raise_application_error(-20000,"Other message");
end;
我的问题是当编译器捕获“消息”错误时,它也会捕获“其他消息”错误。为什么会这样?
【问题讨论】:
【参考方案1】:尝试将它们放在同一个异常块中。
如果您将when others
放在一个单独的块中,它总是会被引发,因为...在该块中没有already catched
例外可以从others
中排除。
来自文档
WHEN OTHERS 子句用于捕获尚未由您的命名系统异常和命名程序员定义的异常处理的所有剩余异常。
所以
exception
when no_data_found then
raise_application_error(-20000,"Message");
when others then
raise_application_error(-20000,"Other message");
end;
【讨论】:
以上是关于PL/SQL 异常的主要内容,如果未能解决你的问题,请参考以下文章