OAF_OAF Exception Handling异常处理(概念)

2014-06-12 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服务器断开,跑出的系统异常,系统异常就不做过多介绍了

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

Thanks and Regards

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

时间: 2024-10-25 11:10:58

OAF_OAF Exception Handling异常处理(概念)的相关文章

Exception Handling in ASP.NET Web API webapi异常处理

原文:http://www.asp.net/web-api/overview/error-handling/exception-handling This article describes error and exception handling in ASP.NET Web API. HttpResponseException Exception Filters Registering Exception Filters HttpError HttpResponseException Wha

[转载]A Crash Course on the Depths of Win32 Structured Exception Handling

转自:[已完工][经典文章翻译]A Crash Course on the Depths of Win32 Structured Exception Handling 原文题目: <<A Crash Course on the Depths of Win32™ Structured Exception Handling>> 原文地址: http://www.microsoft.com/msj/0197/Exception/Exception.aspx 原作者: Matt Pietr

SEH(structured exception handling)基础篇---终止处理程序

前序:最近看SEH看的头晕脑胀/(ㄒoㄒ)/~~,SEH最开始是Windows提供的异常处理机制,只是一个简单的框架,而我们现在使用的SEH都是编译器已经在系统提供的最基础的框架上做了修改的增强版(原始版比较原始,牵扯到大量Windows基础知识,并且需要反汇编看汇编代码来理解....本人现在功力较浅,需要慢慢消化,先看一下增强版,通过C和C++来接触一下. SEH包含两部分功能:终止处理(termination handling)和异常处理(exception handling).在这先讲一下

Exception Handling引入MVP

异常处理(Exception Handling)是所有系统的最基本的基础操作之一,其它的比如日志(Logging).审核(Auditing).缓存(Caching).事务处理(Transaction)等: 今天,来把异常处理引入到我们在<MVP之V和P的交互>中Calculator的实例中,简单的实现AOP.实例运行如图: 那么,开始我们开简单的介绍下Enterprise Library EHAB(Exception Handling Application Block)提供了一种基于策略(P

/EH (Exception Handling Model)

Specifies the kind of exception handling used by the compiler, when to optimize away exception checks, and whether to destroy C++ objects that go out of scope because of an exception. If /EH is not specified, the compiler catches both asynchronous st

Exception handling

https://en.wikipedia.org/wiki/Exception_handling In general, an exception breaks the normal flow of execution and executes a pre-registered exception handler. The details of how this is done depends on whether it is a hardware or software exception a

[转]java-Three Rules for Effective Exception Handling

主要讲java中处理异常的三个原则: 原文链接:https://today.java.net/pub/a/today/2003/12/04/exceptions.html Exceptions in Java provide a consistent mechanism for identifying and responding to error conditions. Effective exception handling   will make your programs more ro

Declarative Exception Handling in Struts

Declarative Exception Handling is the procedure of handling Exceptions declaratively through the help of xml files. It is not needed to include exception-handling code in the java code of the application. The way of handling the exception would be sp

CoreCLR on Mac:体验managed exception handling

C#测试代码: using System; class Program { static void A() { try { Console.WriteLine("Throwing an exception"); throw new Exception("Did you catch it?"); } finally { Console.WriteLine("A.finally()"); } } static void B() { try { C()