2014-06-12 Created By BaoXinjian


Oracle Application Framework将异常分为三类

异常类型type

1. 常规异常General Exception

  • Class:oracle.apps.fnd.framework.OAException
  • Function: 提供了在运行时刻同时显示多种类型异常的手段,结合EBS的Message,可显示有用的信息

2. 验证异常Validation Exception

  • Class:oracle.apps.fnd.framework.OAAttrValException/OAROwValException
  • Function: 分别代表字段级和记录级的验证异常,用于字段级和记录级的校验,继承与OAException,所以可以显示方式有类似性

3. 严重的异常Server Exception

  • Function: OAF系统自动抛出,系统级别的异常,以OAErrorPage呈现给用户,比如OAF调试多次后抛出Space空间不足异常

异常包class

1. OAException

  • 异常类型

    • OAException.ERROR   //错误
    • OAException.WARNING   //警告
    • OAException.INFORMATION   //信息
    • OAException.CONFIRMATION  //确认
    • OAException.SEVERE //致命
  • 定义方式

    • 定义异常的的实例变量,然后抛出

      • OAException  errormessage = new OAException(…);  throw errormessage;
    • 直接生成实例抛出
      • throw new OAException(…);
  • 抛出方式:语法
    • Messagebox抛出

      • throw new OAException(…);
    • pageContext.putDialogMessage(…);
      • 2. Dialog  page 抛出

OAException(String appShortName, //应用短名

String messageName,  //消息名称

MessageToken[] messageTokens, //消息参数

byte messageType, //异常类型

Exception[] details) //异常明细

可以省略其中部分参数,例如: OAException(String messageName)

OAException(String messageName, byte messageType)

OAException(String messageName, MessageToken[],byte messagType)

2.1 OAAttrValException

  • 如果在视图对象行或者实体对象中,任意属性级别的验证失败,你都可以像如下抛出一个OAAttrValException.语法

    • 源对象类型(OAException.TYP_ENTITY_OBJECT或者OAException.TYP_VIEW_OBJECT)
    • 完整的实体定义的名称或者视图实例的名字
    • 实体或者行的主键
    • 正验证的属性名
    • 验证失败的属性值
    • 错误消息所属的应用缩写名
    • 错误消息名称

OAAttrValException(int objType, //对象类型

String objName,  //对象名称

Key key,  //对象主键

String attrName, //字段名

Object attrValue,  //错误的字段值

String appShortName,  //应用短名

String messageName,  //消息名称

MessageToken[] messageTokens, //消息参数

byte messageType,  //消息类型

Exception[] details,  //异常明细

boolean peer)

2.2. OARowValException

如果在视图对象行或者实体对象上的任意的行级别的验证失败,你可以像下面展示的抛出一个OARowValException

要示例化这个异常,你必须传入以下的信息:

  • 完整的实体定义名称或者视图对象名称
  • 实体或者行的主键
  • 错误消息所属的应用缩写名
  • 错误消息名

3. BundledExceptions

Bundled exceptions 允许你在进行验证的时候叠加同等的异常,当你完成验证的时候一块显示给用户。这些同等的异常被分组到一个叫做bundled exception 的容器异常中.

可以包含任意类型的服务器端的异常(包括系统级的异常,数据格式错误,属性验证错误,行验证错误以及实体创建错误).

4. 异常class继承结构

5. 处理异常时 try- catch - finally 语法


案例:在一个客制化的页面上有ReportName栏位,如为空值,则提示用户进行录入

1. 在EBS定义Error Message,通过&P_EMPLOYEE_NAME进行传参数,动态地显示参数

2. 在FND_NEW_MESSAGES确认是否定义成功

3. 在OAF调用OAException 如果ReportName为空则,进行抛出异常

4. 通过定义异常,再进行抛出该异常,测试结果

5. 直接抛出该异常,测试结果


案例1. 在EO的字段添加异常,如果Total为0值,则抛出异常

1. 字段级验证异常调用

2. 字段级验证异常测试

案例2. 在EO的记录级validateEntity()添加异常,将多个字段组合进行判断,则抛出异常

1. 记录级验证异常调用

2. 记录级验证异常调用测试


例如: Jeveloper和EBS服务器断开,跑出的系统异常,系统异常就不做过多介绍了

Thanks and Regards
参考:Tony Liu - http://blog.itpub.net/10359218/viewspace-677445/

OAF_OAF Exception Handling异常处理(概念)的更多相关文章

  1. Exception handling 异常处理的本质

    异常处理的本质:状态回滚或者状态维护. https://en.wikipedia.org/wiki/Exception_handling In general, an exception breaks ...

  2. C# to IL 10 Exception Handling(异常处理)

    Exception handling in IL is a big let down. We expected a significant amount of complexity,but were ...

  3. 异常处理与MiniDump详解(3) SEH(Structured Exception Handling)

    write by 九天雁翎(JTianLing) -- blog.csdn.net/vagrxie 讨论新闻组及文件 一.   综述 SEH--Structured Exception Handlin ...

  4. C#编程.异常处理(Exception Handling Statements)

    C#语言包含结构化异常处理(Structured Exception Handling,SEH). throw The throw statement is used to signal the oc ...

  5. Exception Handling in ASP.NET Web API webapi异常处理

    原文:http://www.asp.net/web-api/overview/error-handling/exception-handling This article describes erro ...

  6. Exception Handling Considered Harmful

    异常处理被认为存在缺陷 Do, or do not. There is no try. - Yoda, The Empire Strikes Back (George Lucas) by Jason ...

  7. Exception Handling引入MVP

    异常处理(Exception Handling)是所有系统的最基本的基础操作之一,其它的比如日志(Logging).审核(Auditing).缓存(Caching).事务处理(Transaction) ...

  8. Unity、Exception Handling引入MVP

    什么是MVP?在“MVP初探”里就有讲过了,就是一种UI的架构模式. 简单的描述一下Unity和Exception Handling Application Block: Unity是一个轻量级的可扩 ...

  9. 黄聪:Microsoft Enterprise Library 5.0 系列教程(七) Exception Handling Application Block

    原文:黄聪:Microsoft Enterprise Library 5.0 系列教程(七) Exception Handling Application Block 使用企业库异常处理应用程序模块的 ...

随机推荐

  1. scala言语基础学习三

    map的操作 访问fangwemap元素 修改map元素 遍历map sortmap和linkmap map元素类型tuple

  2. POJ-2481 Cows (线段树单点更新)

    题目大意:给n个区间,对于任意一个区间,求出能完全包含它并且长度比它长的区间的个数. 题目分析:将一个区间视为二位坐标系中的一个点,左端点视作横坐标,右端点视作纵坐标.则题目变成了求每个点的左上方.正 ...

  3. (转)A Beginner's Guide To Understanding Convolutional Neural Networks

    Adit Deshpande CS Undergrad at UCLA ('19) Blog About A Beginner's Guide To Understanding Convolution ...

  4. 利用redis写webshell

    redis和mongodb我之所见 最近自己在做一些个人的小创作.小项目,其中用到了mongodb和redis,最初可能对这二者没有深入的认识.都是所谓的“非关系型数据库”,有什么区别么? 实际上,在 ...

  5. ADS1110/ADS1271

    ADS1110 1.初始化 软件:设置p任意2个为GPIO口 硬件:设置p0.2,p0.3为SDA,SCL 输入.输出 ADS1110的I2C地址(1001aaa)例如ADS1110A0的地址是100 ...

  6. pdo的工作方式与查错

    pdo某些方法如prepare()会返回PDOStatement对象; 然后需要通过返回的PDOStatement对象的方法操作 当查错通过$pdo->errInfo()方法可能查不出错误信息 ...

  7. Oracle数据库——Scheduler Job

    日常的运维工作中,我们经常使用Linux Server的anacron服务来使得服务器执行一下计划之内的任务,可以按照特定的时间间隔,重复的执行相关的命令或者相关的脚本,来完成预期的目标,能够节省相关 ...

  8. jquery layer弹窗弹层插件 小巧强大

    /* 先去官网下载最新的js  http://sentsin.com/jquery/layer/ ①引用jquery ②引用layer.min.js */ 触发弹层的事件可自由绑定,如: $('#id ...

  9. 取得某个数组前key大 PHP实现

    <?php function max_key($arr, $key) { $tmp_key = $key; $max_arr = array(); while($tmp_key--) $max_ ...

  10. API、ABI区别

    http://blog.csdn.net/xinghun_4/article/details/7905298 应用程序二进制接口(ABI-Application Binary Interface)定义 ...