Oracle_day03例外

例外

    异常是程序设计语言提供的一种功能,用来增强程序的健壮性,和容错性,

在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 .在监听程序中注册数据库服务






















猜你喜欢

转载自blog.csdn.net/qq_39148187/article/details/79927878