是这样在系统中web端最终给客户的错误提示是根据这样一个class来显示的.
public class ErrorCode {
/**错误代码*/
private String code;
/**错误名称*/
private String name;
/**错误描述*/
private String description;
//Other setter/getter method of the fields above
......
}
所有的异常都来自于一个对session bean方法封装的business delegator.
我在这个business delegator里调用Session bean的方法,并且把捕获的异常根据情况生成ErrorCode对象返回给web端.我现在的做法如下:
public class MyBusinessDelegator {
private ErrorCode errorCode;
public ErrorCode getErrorCode () {
return this.errorCode;
}
public String getWeight (String name) {
try {
return invoiceSetting.getWeight( name);
} catch (BusinessException ge) {
errorCode = new ErrorCode (); //-------
errorCode.setCode ("2000");
errorCode.setName ("该人员不存在");
errorCode.setDescription ("该人员不存在");
return null;
} catch (RemoteException re) {
errorCode = new ErrorCode ();//-------
errorCode.setCode ("2000");
errorCode.setName ("系统错误");
errorCode.setDescription ("系统错误");
return null;
}
}
}
当有好多这样的方法时,代码看着有些urgly.但是每次捕获异常都要new一个ErrorCode,因为如果不new的话,客户端有可能得到的是上次调用的ErrorCode信息.我想问的是能不能通过模式或者一些设计改进一下这个代码.