例外
异常是程序设计语言提供的一种功能,用来增强程序的健壮性,和容错性,
在java程序设计中 ,try ... catch ... finally 可以没有catch 可以没有finally
java用的是,向上处理, 栈是一种数据结构, 先进后出, 如果没有处理例外,就向上抛 ,如果没有人处理, 就会给虚拟机虚拟机处理
java exception 有两种,
1. jdk 提供的一些例外
2 .自己继承exception 的意外 自定义意外
Oracle 例外
no_data_found 没有找到结果意外
too_many_rows select into 查到多行
zero_divide 被零除
value_error 算术转换错误
timeout_on_resoure 等待资源超时 (这个产生的场景就是分布式数据库)
什么叫做分布式数据库?
数据物理伤被存放在不同的网路节点, 逻辑上是一个整体
自定义例外
自定义例外名称然后在后面跟上exception 就可以了
用关键字raise 进行抛出异常
代码如下,我们查询一个不存在的数据
-- 查询50号部门的员工 declare -- 如果没有找到我们就抛出一个自己定义的异常 cursor cemp is select ename from emp where deptno=50; pename emp.ename%type ; -- 自定义例外 no_emp_found exception ; begin open cemp ; -- 取出第一条数据 fetch cemp into pename ; if cemp%notfound then -- 抛出例外 raise no_emp_found; end if ; -- 进程 :pmon 进程 进程监视器 ,当用户进程失败的时候,pmon 会自动启动 -- 1. 清除数据库缓冲区高速缓存 -- 2. 释放该用户进程使用资源 close cemp; exception when no_emp_found then dbms_output.put_line('没有找到员工,出现了一个例外!!'); when others then dbms_output.put_line('其他例外'); end ;
PMON 进程 这个进程监控的是进程
1 .在用户进程失败时候执行进程恢复
1.1 清除数据库缓冲区告诉缓存
1.2 释放该用户进程使用资源
2. 监听会话, 查看是否发生空闲的会话超时
3 .在监听程序中注册数据库服务