zoukankan      html  css  js  c++  java
  • 异常处理

     (1)自定义异常:必须首先在声明部分声明异常,然后在执行部分抛出异常,最后由异常处理区域捕获异常

    (2)有些Oracle内部错误只有错误编号,而没有异常名称。使用 EXCEPTION_INIT,可以将自定义的异常名称与错误编号关联起来。

    EXCEPTION_INIT只能定义在声明部分,语法如下:

    pragma  EXCEPTION_INIT(exception_name, oracle_error_number);

    (3)RAISE_APPLICATION_ERROR,是Oracle中的一个内置函数,只能在存储的子程序中调用(即函数,存储过程,包等,不能在匿名的程序块中使用),

        能够抛出用户自定义的错误消息,语法如下:

     1 raise_application_error(error_number, error_message, [keep_errors]); 

    其中,error_number是范围在 -20000 到  -20999之间的负整数,error_message是最大长度为2048字节的字符串。

    (4)重新抛出异常

      在捕捉到异常之后,要想重新抛出异常,只要在本地处理程序放置一个 raise 语句即可。

    (5)从异常中恢复

      要想实现从异常中恢复,可以将异常放在子块中,在子块中编写对应的异常处理程序,当子块结束后,就可以继续执行外层块中的下一条语句。

    (6)跟踪异常发生的具体位置

      可以使用 DBMS_UTILITY.FORMAT_ERROR_BACKTRACE函数来获取异常发生的具体位置。该函数返回错误发生的具体位置的行号,必须在异常处理模块调用这个函数来访问异常的栈。

    (7)抛出一个异常并不会终止一个事务,除非在异常处理器中显式使用了 ROLLBACK 语句 或 COMMIT 语句。如果顶层的语句块中存在一个未处理的异常,该异常将被传递到调用环境,服务器端将会自动回滚该事务。

  • 相关阅读:
    FEniCS 1.1.0 发布,计算算术模型
    Piwik 1.10 发布,增加社交网站统计
    淘宝褚霸谈做技术的心态
    CyanogenMod 10.1 M1 发布
    Druid 发布 0.2.11 版本,数据库连接池
    GNU Gatekeeper 3.2 发布
    Phalcon 0.9.0 BETA版本发布,新增大量功能
    EUGene 2.6.1 发布,UML 模型操作工具
    CVSps 3.10 发布,CVS 资料库更改收集
    Opera 移动版将采用 WebKit 引擎
  • 原文地址:https://www.cnblogs.com/ly01/p/8579227.html
Copyright © 2011-2022 走看看