OAF_EO系列7 - OAException异常处理及实现(案例)

简介: 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

(1). 异常类型

OAException.ERROR   //错误

OAException.WARNING   //警告

OAException.INFORMATION   //信息

OAException.CONFIRMATION  //确认

OAException.SEVERE //致命

(2). 定义方式

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

OAException  errormessage = new OAException(…);  throw errormessage;

直接生成实例抛出

throw new OAException(…);

(3). 抛出方式:语法

Messagebox抛出 - throw new OAException(…);

pageContext.putDialogMessage(…) - 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 - 鲍新建
相关文章
|
安全 网络安全 API
常用的几个SMTP地址大全集合来了
SMTP是发送邮件的标准协议,常用SMTP地址包括:Gmail(smtp.gmail.com),Hotmail(smtp.live.com),Yahoo(smtp.mail.yahoo.com),QQ(smtp.qq.com),163(smtp.163.com)和阿里云(smtp.mxhichina.com)。所有这些都需要身份验证和SSL加密。了解这些地址有助于设置邮件客户端,确保邮件安全、顺利发送。AokSend提供触发式接口和高触达发信服务,适用于大量验证码发送。
|
存储 Oracle 关系型数据库
Oracle中“ORA-00060: 等待资源时检测到死锁” 或存储过程编译卡死的一种解决方法
Oracle中“ORA-00060: 等待资源时检测到死锁” 或存储过程编译卡死的一种解决方法
1287 0
|
Oracle 关系型数据库 MySQL
实时计算 Flink版操作报错合集之采集oracle的时候报ORA-65040:不允许从可插入数据库内部执行该操作如何解决
在使用实时计算Flink版过程中,可能会遇到各种错误,了解这些错误的原因及解决方法对于高效排错至关重要。针对具体问题,查看Flink的日志是关键,它们通常会提供更详细的错误信息和堆栈跟踪,有助于定位问题。此外,Flink社区文档和官方论坛也是寻求帮助的好去处。以下是一些常见的操作报错及其可能的原因与解决策略。
635 3
|
11月前
|
运维 监控 Linux
推荐几个不错的 Linux 服务器管理工具
推荐几个不错的 Linux 服务器管理工具
833 6
|
存储 物联网 关系型数据库
PolarDB在物联网(IoT)数据存储中的应用探索
随着物联网技术的发展,海量设备数据对数据库提出实时高效存储处理的新要求。PolarDB作为阿里云的高性能云数据库,展现了其在IoT数据存储领域的潜力。面对IoT数据的规模、实时性和多样性挑战,PolarDB凭借分布式架构,实现了高性能、高可靠性和高扩展性,支持动态扩展和冷热数据分层存储,满足IoT数据实时写入、查询及管理需求,展现出广阔的应用前景。
353 1
升级到jdk1.8后 sun/io/CharToByteConverter错误及处理
升级到jdk1.8后 sun/io/CharToByteConverter错误及处理
754 0
|
SQL 存储 关系型数据库
【Hive】Hive有哪些方式保存元数据,各有哪些特点?
【4月更文挑战第17天】【Hive】Hive有哪些方式保存元数据,各有哪些特点?
|
Oracle 关系型数据库 数据库
PLSQL连接本地oracle或远程oracle数据库,实现随意切换
PLSQL连接本地oracle或远程oracle数据库,实现随意切换
|
负载均衡 算法 Dubbo
深入理解Dubbo-7.服务消费调用源码分析(上)
深入理解Dubbo-7.服务消费调用源码分析
348 0
|
Java 关系型数据库 MySQL
JDBC数据库驱动的下载与安装与连接
在使用 JDBC 之前,需要下载相应的 JDBC 驱动程序,该驱动程序应该与你使用的数据库的版本相对应。可以在数据库官网上找到相应的 JDBC 驱动程序。
807 0