oracle的异常
1、异常的属性;Oracle中的异常有两个属性:sqlerrm/sqlcode;测试属性;
2、另一种合法的情况:只有查询结果为一条记录,就不会抛出异常;
3、也会得到同样的结果;有异常出现的情况;
4、非预定义异常;只有编号,没有名字,所以这样的异常是不能直接使用;只有给这个编号起个名字,才能使用;对“在从表中添加的记录里,在外键列中出现了主表中的主键列中没有的值”出现的编号为-2291的异常进行非预定义;
5、自定义异常;Oracle中的自定义异常,是根据业务逻辑,来自行设置的异常;既没有名称,也没有编号;在三类异常中,只有自定义异常可以将异常抛出;raise age_exp;当年龄小于0时,会将异常抛出;
6、declareage number(4):=0;--给非预定义异常命名;age_exp exception;--让非定义异常名称与异常粕盘镱嘧编号关联;pragma exception_init(age_exp,-30002);beginage:= &age;--if判断相当于try块;if age<0 thenraise age_exp;end if;insert into cc values(xx(100),'aaaa',age);exceptionwhen age_exp thenshow(sqlerrm);show(sqlcode);when others thenshow(sqlerrm);show(sqlcode);end;/与Java中的异常一样,当年龄合法时,异常处理机制不起作用;
7、当年龄不合法,异常处理机制才会起作用,对发生的异常进行处理;declareage number(4)多唉捋胝:=0;--给非预定义异常命名;age_exp exception;--让非定义异常名称与异常编号关联;pragma exception_init(age_exp,-20005);beginage:= &age;--if判断相当于try块;if age<0 thenraise age_exp;end if;insert into cc values(xx(100),'aaaa',age);exceptionwhen age_exp thenshow('年龄无效!');show(sqlcode);when others thenshow('other exception...');end;/