OAF_OAF Exception Handling异常处理(概念)

简介: 2014-06-12 Created By BaoXinjian 一、摘要 Oracle Application Framework将异常分为三类 异常类型type 1. 常规异常General Exception Class:oracle.

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 语法

 

二、常规异常General Exception的案例


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

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

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

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

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

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

 

三、验证异常Validation Exception的案列


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

1. 字段级验证异常调用

2. 字段级验证异常测试

 

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

1. 记录级验证异常调用

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

 

四、系统异常Server Exception的案例


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

 

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

 

ERP技术讨论群: 288307890
技术交流,技术讨论,欢迎加入
Technology Blog Created By Oracle ERP - 鲍新建
相关文章
|
算法 Python
LightGBM高级教程:自动调参与超参数优化
LightGBM高级教程:自动调参与超参数优化【2月更文挑战第5天】
1798 2
|
JavaScript Java 测试技术
基于SpringBoot+Vue的学生宿舍信息的系统的设计与实现(源码+lw+部署文档+讲解等)
基于SpringBoot+Vue的学生宿舍信息的系统的设计与实现(源码+lw+部署文档+讲解等)
|
算法
MATLAB | 插值算法 | 二维griddata插值法 | 附数据和出图代码 | 直接上手
MATLAB | 插值算法 | 二维griddata插值法 | 附数据和出图代码 | 直接上手
1372 0
|
存储 机器人 API
ros学习之关于RobotModel和RobotState类的使用
ros学习之关于RobotModel和RobotState类的使用
Spring Boot 最新发布,看完我彻底傻眼了!没几个 能打的了
来源: https://mp.weixin.qq.com/s/Ljwg7z3zwS1WjXicVlSkXA 作者:Java技术栈 距离 Spring Boot 2.6.3 发布一个月左右,Spring Boot 2.6.4 又来了!
|
5天前
|
云安全 人工智能 安全
AI被攻击怎么办?
阿里云提供 AI 全栈安全能力,其中对网络攻击的主动识别、智能阻断与快速响应构成其核心防线,依托原生安全防护为客户筑牢免疫屏障。
|
15天前
|
域名解析 人工智能
【实操攻略】手把手教学,免费领取.CN域名
即日起至2025年12月31日,购买万小智AI建站或云·企业官网,每单可免费领1个.CN域名首年!跟我了解领取攻略吧~
|
9天前
|
安全 Java Android开发
深度解析 Android 崩溃捕获原理及从崩溃到归因的闭环实践
崩溃堆栈全是 a.b.c?Native 错误查不到行号?本文详解 Android 崩溃采集全链路原理,教你如何把“天书”变“说明书”。RUM SDK 已支持一键接入。
590 212