ITPub博客

首页 > 数据库 > Oracle > OAF学习笔记- Error Handling

OAF学习笔记- Error Handling

原创 Oracle 作者:贾三灌汤包 时间:2014-04-03 15:06:30 0 删除 编辑

OAF学习笔记-  Error Handling

OAF提供了三种类型的Exception:

1. General Exception:

Class: oracle.apps.fnd.framework.OAException

提供了在运行时刻同时显示多种类型异常的手段,结合EBSMessage Dictionary,可显示有用的消息。

2. Validation Exception:

Class: oracle.apps.fnd.framework.OAAttrValException /oracle.apps.fnd.framework.OARowValException

分别代表字段级/记录级的校验异常。可用在字段级或记录级的校验代码中。继承于OAException,显示方式与General Exception类似,但调用方法有差别。

3. Severe Exception:

致命异常,通常用于系统级别的异常。此异常往往由OAF自动抛出,以OAErrorPage的方式显示给用户。比如记录指针读数大于最大记录数时,就会抛出NullPointerException

主要学习前两种异常。

OAException

此异常用于常规的错误。

调用方法:  OAException

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)

等等。

其中的异常类型包括如下几种:

OAException.ERROR   //错误

OAException.WARNING   //警告

OAException.INFORMATION   //信息

OAException.CONFIRMATION  //确认

OAException.SEVERE //致命

定义方式:

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

OAException  errormessage = new OAException(…);

throw errormessage

2直接生成实例抛出

throw new OAException(…);

抛出方式:

1. Messagebox抛出

throw new OAException(…);

 pageContext.putDialogMessage(…);

2. Dialog  page 抛出

后续详述

一个简单的例子:

OACellFormatBean shipTermsCell =

   (OACellFormatBean)webBean.findIndexedChildRecursive("ShipTermsCell");  if (shipTermsCell == null)

 {

   MessageToken[] tokens = { new MessageToken("OBJECT_NAME", "ShipTermsCell")};

   throw new OAException("AK", "FWK_TBX_OBJECT_NOT_FOUND", tokens);

 }

OAAttrValException

此异常在字段校验时抛出。

调用方法: OAAttrValException

OAAttrValException(int objType, //对象类型

                   String objName,  //对象名称

                   Key key,  //对象主键

                   String attrName, //字段名

                   Object attrValue,  //错误的字段值

                   String appShortName,  //应用短名

                   String messageName,  //消息名称

                   MessageToken[] messageTokens, //消息参数

                   byte messageType,  //消息类型

                   Exception[] details,  //异常明细

                   boolean peer

                   )

其中的objType 包括:

有很多,具体参见JAVADOC。这里主要两个:

TYP_ENTITY_OBJECT   EO对象

TYP_VIEW_OBJECT     VO对象

定义与抛出方式与OAException一致。请注意,此异常一般用在set()方法中。

一个简单的例子:

EO:

public void setSalary(Number value)

{

   if (value != null)

   {

      // Verify value is > 0      if (value.compareTo(0) <= 0)

      {

         throw new OAAttrValException(OAException.TYP_ENTITY_OBJECT, // indicates EO source

                                      getEntityDef().getFullName(), // entity name

                                      getPrimaryKey(), // entity primary key

                                      "Salary", // attribute Name

                                      value, // bad attribute value

                                      "AK", // nessage application short name

                                      "FWK_TBX_T_EMP_SALARY_REQUIRED"); // message name       }

     setAttributeInternal(SALARY, value);

   }

} // end setSalary()

VO:

setDescription(String value)

{   if("XXX".equals(value)

   {     throw new OAAttrValException (

                                                OAException.TYP_VIEW_OBJECT, // indicates VO row source

                                               ((ComponentObject)getViewObject()).getName(), // view instance name   

                                                getKey(), // row primary key                         

                                               "Description", //attribute name       

                                               value, // bad attribute value         

                                              "FND", //message application short name               

                                             "ATTR_EXCEPTION"); // message name

  } 

setAttributeInternal("Description", value);

 } // end setDescription()

<!--
管理员在2009年8月13日编辑了该文章文章。
-->

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/22816976/viewspace-1135448/,如需转载,请注明出处,否则将追究法律责任。

上一篇: Workflow Tables
请登录后发表评论 登录
全部评论

注册时间:2009-11-03

  • 博文量
    128
  • 访问量
    222574