錯誤程式碼的設計!

shipatrioc發表於2004-12-03
是這樣在系統中web端最終給客戶的錯誤提示是根據這樣一個class來顯示的.

public class ErrorCode {
    /**錯誤程式碼*/
    private String code; 
    /**錯誤名稱*/
    private String name;
    /**錯誤描述*/
    private String description;
    //Other setter/getter method of the fields above
   ......
}
<p class="indent">

所有的異常都來自於一個對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;
        }
    }
  }
<p class="indent">

當有好多這樣的方法時,程式碼看著有些urgly.但是每次捕獲異常都要new一個ErrorCode,因為如果不new的話,客戶端有可能得到的是上次呼叫的ErrorCode資訊.我想問的是能不能透過模式或者一些設計改進一下這個程式碼.

相關文章