swing查询输入框无值时出现null异常_异常操作

PL/SQL支持程序员在程序中使用异常块捕获程序运行

中出现的错误等异常信息,分为:

Ø 系统定义的异常

Ø 用户定义的异常

系统级异常

--语法如下:

beginexceptionwhen 异常名then   语句...when others then   语句...end;

以下是oracle数据库中系统定义好的异常的名称和产生的原因:

异常名

原因

ACCESS_INTO_NULL

当一个空对象会自动分配一个值引发此异常

CASE_NOT_FOUND

当没有任何选择,在当选择一个CASE语句的子句且没有ELSE子句时被引发

COLLECTION_IS_NULL

当程序试图申请其他收集方法不是存在未初始化的嵌套表或VARRAY,或程序试图值分配给未初始化的嵌套表或变长数组的元素时被引发

DUP_VAL_ON_INDEX

当重复值试图被存储在具有唯一索引的列时被引发

INVALID_CURSOR

当尝试以使这是不允许的,如关闭一个未打开的游标的游标操作时被引发

INVALID_NUMBER

当一个字符串转换成一个数失败,因为字符串不表示一个有效的数据被引发

LOGIN_DENIED

当程序试图登录到数据库使用无效的用户名或密码被引发

NO_DATA_FOUND

它被引发当一个SELECT INTO语句无任何行返回

NOT_LOGGED_ON

在不连接到数据库发出数据库调用它被引发

PROGRAM_ERROR

它被引发当PL/SQL有一个内部问题

ROWTYPE_MISMATCH

当游标取值有不兼容的数据类型的变量被引发

SELF_IS_NULL

它被引发,当对象的成员方法被调用,但对象类型的实例没有被初始化。

STORAGE_ERROR

它被引发当PL/SQL内存不足或内存已损坏

TOO_MANY_ROWS

它被引发当SELECT INTO语句返回多行

VALUE_ERROR

当算术,转换,截短,或大小约束错误时引发

ZERO_DIVIDE

它被引发当一个数试图除以零。

案例:

查询部门表中有某个编号的部门,给其一个不存在的编号来演示NO_DATA_FOUND异常:该异常在SELECT INTO语句查询不到结果时触发.

另外给其一个能够返回多个行记录的编码来演示TOO_MANY_ROWS异常:该异常在SELECT INTO语句查询后返回多个行记录时触发.

declare    dnum number:=60;    depts dept%rowtype;    dna  dept.dname%type;beginselect * into depts.deptno,dna,depts.loc from dept where deptno>dnum;    dbms_output.put_line('部门编号:'||depts.deptno||',部门名称:'||dna||',城                          市:'||depts.loc);exception    when NO_DATA_FOUND then        dbms_output.put_line('没有查找到数据');    when TOO_MANY_ROWS then        dbms_output.put_line('返回了多个行记录');    when others then        dbms_output.put_line('其他异常');end;

自定义异常

自定义异常需要现在declare中声明,类型为exception类型,然后需要在begin中给其设置触发条件,然后就可以在exception后的when中使用.

自定义异常三步骤:

1.declare中定义异常

2.begin中设置触发条件,由raise关键字触发.注: raise中文发音:瑞爱Z

3.exception中使用

案例:查询指定id的员工名字来演示自定义异常

declare   cid number:=-1;   cname emp.ename%type;   ex_invalid_id  exception;                    ---1.定义异常beginif cid <0 then                              ---2.设定触发条件         raise ex_invalid_id;    end if;    select ename into cname from emp where empno=cid;    dbms_output.put_line('员工名字为:'||cname);exception when ex_invalid_id then                        ---3.使用异常        dbms_output.put_line('id不可用,不能为负数');    when no_data_found then        dbms_output.put_line('未查到任何数据');    when others then        dbms_output.put_line('其他异常,请联系管理员');end;

656c542dfeb09f2092f1f7fd05e53261.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值