如何在ADF JSFF中捕获异常

时间:2017-02-02 04:50:49

标签: eclipse exception-handling oracle-adf

我目前正在使用Oracle ADF EssentialsOracle Enterprise Pack for Eclipse GlassFish 4进行开发。

我想捕获一个Java Exception并在JSFF Task Flow视图内的屏幕上正确显示它

怎么做?

1 个答案:

答案 0 :(得分:1)

以下是官方Oracle文档 Handling Exceptions in Task Flows

是说

  

在任务流程图中,右键单击该活动,然后选择标记活动>异常处理程序

因此,使用方法创建支持bean或使用方法创建类并将其转换为数据控件。请参阅文档 Using Method Call Activities 拖放以进行Method调用,并将该活动标记为异常。

使用以下代码捕获使用ADF ControllerContext 引发的异常。我假设方法名称为 showException

public void showException() {
  ControllerContext cc = ControllerContext.getInstance();

  Exception ex = cc.getCurrentViewPort().getExceptionData();
  String message = ex.getMessage();


  FacesContext fc = FacesContext.getCurrentInstance();
  FacesMessage facesMessage =
  new FacesMessage(FacesMessage.SEVERITY_ERROR, "UTF: " + message, null);
  fc.addMessage(null, facesMessage);

  cc.getCurrentRootViewPort().clearException();
  fc.renderResponse();
}