OAF—Error Handling
来源:互联网 发布:网络编程开源项目 编辑:程序博客网 时间:2024/05/18 03:22
OAF提供了三种类型的Exception:
1. General Exception:
Class: oracle.apps.fnd.framework.OAException
提供了在运行时刻同时显示多种类型异常的手段,结合EBS的Message 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<Attribute Name>()方法中。
一个简单的例子:
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()
1. General Exception:
Class: oracle.apps.fnd.framework.OAException
提供了在运行时刻同时显示多种类型异常的手段,结合EBS的Message 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<Attribute Name>()方法中。
一个简单的例子:
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()
作者 “红豆加奶”
文章原处:http://www.2cto.com/database/201109/102495.html
0 0
- OAF—Error Handling
- Error Handling
- Error Handling
- Requirements of error handling
- 2.4 Handling &Error Code
- Error handling in WCF
- 错误处理(Error Handling)
- Error Handling In VBA
- Error handling in VBScript
- RadInput Error handling
- 【pig】Error Handling
- Erlang Error Handling
- Error Handling with exceptions
- Error Handling and Debugging
- Debugging and Error Handling
- Error Handling 错误处理
- swift Error Handling
- swift Error handling
- 开篇语
- 设计师必备网站
- EAS BOS开发通用功能
- 敏捷文档编制路线图
- Convert.ToString能处理字符串为null的情况。
- OAF—Error Handling
- POJ 3069 Saruman's Army(水题,简单的贪心)
- 顺序表合并
- 【Python】【Dict】dict 基本用法
- dedecms的title优化?
- socketpair学习
- ctype.h 参考
- char与byte的区别
- 速来膜拜!20位活跃在Github上的国内技术大牛