zoukankan      html  css  js  c++  java
  • 异常的认识

    异常就是在Oracle数据库中运行时出现的错误

    异常在PL/SQL执行过程中很可能出现

    对异常如果不进行处理,异常会中断程序的运行

    语法:

    EXCEPTION

      WHEN exception1 [OR exception2 . . .] THEN

        statement1;

        statement2;

        . . .

      [WHEN exception3 [OR exception4 . . .] THEN

        statement1;

        statement2;

        . . .]

      [WHEN OTHERS THEN

        statement1;

        statement2;

        . . .]

    捕获异常的规则

    EXCEPTION 关键词开始异常处理部分

    WHEN OTHERS 为最后的一条子句

    可以设置多个异常处理句柄

    在异常块中,只有一个句柄会处理异常

    1、预定义异常(总计21种,具体见文档)

    常用类型:

        NO_DATA_FOUND       --ORA-01403-- 未找到行

        TOO_MANY_ROWS       --ORA-01422--SELECT INTO 语句返回多行数据

        VALUE_ERROR         --ORA-06502-- 类型转换错误

        ZERO_DIVIDE         --ORA-01476-- 程序尝试除以 0

     STORAGE_ERROR       --ORA-06500--PL/SQL 运行时内存溢出或内存不足

    2、非预定义异常(EXCEPTION_INIT )

    需要在declare中申明,申明后使用即与预定义异常相同。

     

    案例1:

    declare

       emp employees%rowtype;

    begin

       select * into emp from employees where employee_id = 333;

       --异常开始捕获

       exception

       when TOO_MANY_ROWS then dbms_output.put_line('查询的条数过多啦!');

       when NO_DATA_FOUND then dbms_output.put_line('没有找到数据哦!');

       when OTHERS then dbms_output.put_line('其它错误!');

    end;

  • 相关阅读:
    C++面试考点
    C++面试考点
    C++11 引用叠加规则和模板参数类型推导规则
    C++11 引用叠加规则和模板参数类型推导规则
    C++11 auto和decltype推导规则
    C++11 auto和decltype推导规则
    RVO和NRVO
    RVO和NRVO
    Strange Bank(找零问题)
    eli和字符串 (牛客假期训练)
  • 原文地址:https://www.cnblogs.com/spdboke/p/6873009.html
Copyright © 2011-2022 走看看