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. JavaWeb学习记录(三)——网页中文编码问题

    方法一: public void doGet(HttpServletRequest request, HttpServletResponse response)            throws S ...

  2. poj1456 结构体排序+贪心

    题意:给出很多商品,每个商品有价值和出售期限,只能在期限内出售才能获取利润,每一个单位时间只能出售一种商品,问最多能获得多少利润. 只需要按照优先价值大的,其次时间长的排序所有物品,然后贪心选择,从它 ...

  3. appium简明教程(6)——启动appium及android模拟器

    一般情况下,我们都从命令行启动appium. windows下,dos命令窗口输入 appium 如果该命令报错,那么请重装appium npm install -g appium 如果安装出错,请自 ...

  4. 简单工厂模式(Simple Factory Pattern)

    简单工厂模式是属于创建型模式,又叫做静态工厂方法(Static Factory Method)模式,但不属于23种GOF设计模式之一.简单工厂模式是由一个工厂对象决定创建出哪一种产品类的实例.简单工厂 ...

  5. 如何在python3.3用 map filter reduce

    在3.3里,如果直接使用map(), filter(), reduce(), 会出现 >>> def f(x): return x % 2 != 0 and x % 3 != 0  ...

  6. A Flock Of Tasty Sources On How To Start Learning High Scalability

    This is a guest repost by Leandro Moreira. When we usually are interested about scalability we look ...

  7. Sql Server 事务隔离级别的查看及更改

    根据自身 Sql Server 的情况来自定义 事务隔离级别,将会更加的满足需求,或提升性能.例如,对于逻辑简单的 Sql Server,完全可以使用 read uncommitted 模式,来减少死 ...

  8. JavaScript 全选函数的实现

    Html代码: <table id="purchase-info" class="table table-bordered table-hover table-st ...

  9. shell之变量与read

    环境变量 set 环境变量可供shell以外的程序使用 shell变量 env shell变量仅供shell内部使用 set:显示(设置)shell变量 包括的私有变量以及用户变量,不同类的shell ...

  10. 无状态Web应用集成——《跟我学Shiro》

    http://www.tuicool.com/articles/iu2qEf 在一些环境中,可能需要把Web应用做成无状态的,即服务器端无状态,就是说服务器端不会存储像会话这种东西,而是每次请求时带上 ...