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 语句。如果顶层的语句块中存在一个未处理的异常,该异常将被传递到调用环境,服务器端将会自动回滚该事务。

  • 相关阅读:
    C# XmlSerializer实现序列化浅析(转载)
    Direct3D学习(资料收集)
    幸福法则
    javascript中的keydown事件中的参数问题
    去除UTF8 BOM【转】
    JavaScript常用资料参考
    KCFinder CKEditor的文件管理器插件
    elFinder Web文件管理器
    用TcpTrace调试Web服务器
    Ubuntu 12.04如何登入root?
  • 原文地址:https://www.cnblogs.com/ly01/p/8579227.html
Copyright © 2011-2022 走看看