OAF_OAF Exception Handling异常处理(概念)
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 抛出
- Messagebox抛出
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异常处理(概念)的更多相关文章
- Exception handling 异常处理的本质
异常处理的本质:状态回滚或者状态维护. https://en.wikipedia.org/wiki/Exception_handling In general, an exception breaks ...
- C# to IL 10 Exception Handling(异常处理)
Exception handling in IL is a big let down. We expected a significant amount of complexity,but were ...
- 异常处理与MiniDump详解(3) SEH(Structured Exception Handling)
write by 九天雁翎(JTianLing) -- blog.csdn.net/vagrxie 讨论新闻组及文件 一. 综述 SEH--Structured Exception Handlin ...
- C#编程.异常处理(Exception Handling Statements)
C#语言包含结构化异常处理(Structured Exception Handling,SEH). throw The throw statement is used to signal the oc ...
- Exception Handling in ASP.NET Web API webapi异常处理
原文:http://www.asp.net/web-api/overview/error-handling/exception-handling This article describes erro ...
- Exception Handling Considered Harmful
异常处理被认为存在缺陷 Do, or do not. There is no try. - Yoda, The Empire Strikes Back (George Lucas) by Jason ...
- Exception Handling引入MVP
异常处理(Exception Handling)是所有系统的最基本的基础操作之一,其它的比如日志(Logging).审核(Auditing).缓存(Caching).事务处理(Transaction) ...
- Unity、Exception Handling引入MVP
什么是MVP?在“MVP初探”里就有讲过了,就是一种UI的架构模式. 简单的描述一下Unity和Exception Handling Application Block: Unity是一个轻量级的可扩 ...
- 黄聪:Microsoft Enterprise Library 5.0 系列教程(七) Exception Handling Application Block
原文:黄聪:Microsoft Enterprise Library 5.0 系列教程(七) Exception Handling Application Block 使用企业库异常处理应用程序模块的 ...
随机推荐
- JavaWeb学习记录(五)——Servlet随机产生验证码
随机产生验证码的工具类: import java.awt.Color;import java.awt.Graphics;import java.awt.image.BufferedImage;impo ...
- scala言语基础学习五
extends override 和super方法 override field 父类不是val对象不能覆盖field isInstanceOf和asInstanceOf(isInstanceOf是用 ...
- POJ-2886 Who Gets the Most Candies?(线段树+模拟)
题目大意:n个小孩按顺时针站成一圈,每次会有一个小孩出队(第一个出队的小孩已知),在他出队时会指定下一个出队的小孩,直到所有的小孩全部出队游戏结束.第p个出队的小孩会得到f(p)个糖果,f(p)为p的 ...
- 论文阅读之:Is Faster R-CNN Doing Well for Pedestrian Detection?
Is Faster R-CNN Doing Well for Pedestrian Detection? ECCV 2016 Liliang Zhang & Kaiming He 原文链接 ...
- network Driver , TDI(Transport Driver Interface) Drivers
https://msdn.microsoft.com/en-us/library/windows/hardware/ff565094(v=vs.85).aspx https://msdn.micros ...
- Agent admitted failure to sign using the key
SSH生成id_rsa, id_rsa.pub后,连接服务器却报: Agent admitted failure to sign using the key 错误. 解决方法: 在当前用户下执行命令: ...
- InvokeRequired和Invoke
C#中禁止跨线程直接访问控件,InvokeRequired是为了解决这个问题而产生的,当一个控件的InvokeRequired属性值为真时,说明有一个创建它以外的线程想访问它.此时它将会在内部调用ne ...
- css设置透明度
使用新的CSS3的"RGBA"声明,不仅仅让我们像通常一样设置RGB颜色,而且还可以设置其透明度. RGBA像RGB一样设置颜色,而这个"A"--RGBA中的最 ...
- C#Linq中的Union All/Union/Intersect和Top/Bottom和Paging和SqlMethods,skip,take,takewhile,skipwhile,编译查询等
我们继续讲解LINQ to SQL语句,这篇我们来讨论Union All/Union/Intersect操作和Top/Bottom操作和Paging操作和SqlMethods操作 . Union Al ...
- browser-ua
故事还得从头说起,最初的主角叫NCSA Mosaic,简称Mosaic(马赛克),是1992年末位于伊利诺伊大学厄巴纳-香槟分校的国家超级计算机应用中心(National Center for Sup ...