让我们看一下通常的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在客户端处理异常。这将有助于我轻松地对这两种情况采取必要的行动,即如果没有找到学生,则有例外情况。
我希望了解这是否是正确的方法,潜在的陷阱,还是有更好的陷阱?
答案 0 :(得分:1)
您必须考虑请求(方法名称和参数)和响应(返回类型)。
如果要返回对象和/或错误,请使用具有两个属性的ValueProxy
,例如
@ProxyFor(FindStudentResponse.class)
interface FindStudentResponseProxy extends ValueProxy {
StudentProxy getStudent();
FindError getError();
}
其中FindError
将是枚举。