首页 > 其他 > 详细

OAF_OAF Exception Handling异常处理(概念)

时间:2014-06-13 15:52:12      阅读:694      评论:0      收藏:0      [点我收藏+]

2014-06-12 BaoXinjian

bubuko.com,布布扣一、摘要


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继承结构

bubuko.com,布布扣

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

bubuko.com,布布扣

 

bubuko.com,布布扣二、常规异常General Exception的案例


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

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

bubuko.com,布布扣

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

bubuko.com,布布扣

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

bubuko.com,布布扣

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

bubuko.com,布布扣

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

bubuko.com,布布扣

 

bubuko.com,布布扣三、验证异常Validation Exception的案列


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

1. 字段级验证异常调用

bubuko.com,布布扣

2. 字段级验证异常测试

bubuko.com,布布扣

 

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

1. 记录级验证异常调用

bubuko.com,布布扣

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

bubuko.com,布布扣

 

bubuko.com,布布扣四、系统异常Server Exception的案例


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

bubuko.com,布布扣

 

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

 

Thanks and Regards

 bubuko.com,布布扣

OAF_OAF Exception Handling异常处理(概念),布布扣,bubuko.com

OAF_OAF Exception Handling异常处理(概念)

原文:http://www.cnblogs.com/eastsea/p/3784700.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!