--抛出异常的用法
declare
type emps_record_type is record
(
emps_id emps.id%type,
age emps.age%type,
name emps.name%type,
sal emps.sal%type
);
emps_record emps_record_type;
cursor emps_cursor is select * from emps;
love exception;
loves exception;
begin
update emps set sal = 1111111 where id = 1;
if SQL%notfound then
raise_application_error(-20010,'user error');--抛出异常,声明了错误代码
end if;
exception when others then
dbms_output.put_line('Some Happened ! '||sqlerrm);--sqlerrm为oracle的错误代码还有sqlcode
end;
declare
type emps_record_type is record
(
emps_id emps.id%type,
age emps.age%type,
name emps.name%type,
sal emps.sal%type
);
emps_record emps_record_type;
cursor emps_cursor is select * from emps;
--定义两个异常变量
love exception;
loves exception;
begin
update emps set sal = 1111111 where id = 1;
--插入不成功异常
if SQL%notfound then
--抛出异常用raise
raise love;--直接抛出,没有任何声明
end if;
exception when love then --捕获异常
dbms_output.put_line('love');
end;