OAF—Error Handling
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, //消息参数
相关新闻>>
- 发表评论
-
- 最新评论 更多>>