設計迷蹤:給JAVA設計開發新手的一些建議和意見(二)

來源:互聯網
上載者:User
【處理好你的異常】
-----------------
 異常處理是Java編程中非常重要的一個部分.建議在使用異常之前閱讀<Effective Java Programming Language Guide>或者<Practical Java>.
 下面從書中摘出幾條建議:
  *絕對不要忽略異常
  *千萬不要隱藏異常***
  *僅在不正常的情況下使用異常
  *對可恢複的情況使用可檢查異常,對程式錯誤使用運行時異常(RunTimeException)
  *給方法引發的異常做文檔
  *在詳細資料裡麵包括失敗捕獲資訊
  *使用finally避免資源泄漏
  *....
 在這裡特別提出的是,在開發中要特別處理NULL的情況,否則經常引發NullPointException異常,在Java裡這是一個最令人頭疼的異常了.
 如果你的程式因為一個NULL值,而報了幾十個NullPointException的話,不但得讓人煩死,而且還非常難以找到錯誤所在.所以在Java中一定要注意這個問題.
 如果你的函數不允許Null值,那麼可以截獲它,拋出一個異常,或者給客戶更友好的提示,難道不好嗎?
 讓我們來看一個例子:
  public String getName(User aUser)
 {
  //如果aUser為Null,會發生什麼情況
  return aUser.getName();
 }
 很明顯,如果參數為Null,就會拋出異常.應該改為:
 public String getName(User aUser)
 {
  if(null=aUser)
  {
   return "";
  }
  else
  {
   return aUser.getName();
  }
 }
 或者你要求參數不可為空,還可以拋出一個異常,強制使用者不能傳入空值.
 還有經常被忽略的是RunTimeException和普通異常的區別,在Java中,這是一個特殊的異常類,程式中如果遇到這個異常,使用者可以不截獲它,而如果是其他的普通異常,就不許要截獲它.我們的代碼經常這麼寫:
 try
 {
  //your code here
 }
 catch(Exception e)
 {
  //do warn
 }
 這樣寫的話,就截獲了所有異常,當然也包括了RunTimeException. 在很多情況下,這是不合適的處理方式,我們只應截獲必要的異常,而應該忽略RuntimeException.

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.