GWT / AppEngine:设计RequestFactory工作流以实现更好的异常处理

时间:2013-12-28 15:22:34

标签: google-app-engine gwt requestfactory

让我们看一下通常的RequestFactory服务器端代码,试图找到一个学生。

Student s = null;
try{
    ....
    s = pm.findStudent(....)
    ....
}catch(Exception e){
    ....
}finally{
    pm.close();
}
return s;

如果存在异常,则's'有可能保持为空。但是客户端代码很难确定是否存在异常或者是否找不到该学生。因此,如果我删除异常块:

Student s = null;
try{
    ....
    s = pm.findStudent(....)
    ....
}finally{
    pm.close();
}
return s;

我将能够使用RequestFactory的onFaliure在客户端处理异常。这将有助于我轻松地对这两种情况采取必要的行动,即如果没有找到学生,则有例外情况。

我希望了解这是否是正确的方法,潜在的陷阱,还是有更好的陷阱?

1 个答案:

答案 0 :(得分:1)

您必须考虑请求(方法名称和参数)和响应(返回类型)。

如果要返回对象和/或错误,请使用具有两个属性的ValueProxy,例如

@ProxyFor(FindStudentResponse.class)
interface FindStudentResponseProxy extends ValueProxy {
  StudentProxy getStudent();
  FindError getError();
}

其中FindError将是枚举。