亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

給JAVA設計開發新手一些建議和意見(2)

2019-11-18 11:49:24
字體:
來源:轉載
供稿:網友

  【處理好你的異?!?br />  
  異常處理是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。
  
  關于RunTimeException,在SPRing中還有更好的利用方式,建議閱讀Spring框架中在事務中對異常的處理代碼,例如對Jdbc拋出的SqlException的轉換。
  
  關于異常處理,我提出幾點建議:
  
  *捕捉異常而且再次拋出時要包含原來的異常信息
  
  *不要忘了RunTimeException,除非必要,否則不要用catch(Exception e)的方式捕捉所有異常。
  
  *不要用異常做流程控制,異常的性能代價比較高昂。(對此,可能有人不同意。此處不具體討論)
  
  *不要把異常處理都拋給別人,本函數有能力處理的就不要拋出。
  
  在此建議讀者具體閱讀或者。
  
  【過度依靠】
  
  在定位錯誤的時候,經常碰到瀏覽了七 八個文件還是沒有找到什么地方執行了真正需要的函數,這個時候就非常郁悶。A調用了B,B調用了C,C調用了D。。。。。。讓人找不到北
  
  面對這樣的程序,存在的問題不僅僅是定位錯誤麻煩,而且假如需要維護這樣的函數庫/框架,恐怕你的有非常高的統御能力才行,否則打死我也不去維護。
  
  那么我們自己最好不要寫這樣的程序出來給人用。
  
  【濫用接口】
  
  現在流行"面對接口編程",這本身本來是不錯,但是濫用接口的現象卻經常發生。
  
  "面向接口",于是所有的類都有一個對應的接口,接口的函數聲明和類一模一樣,而且一個接口只有一個類來實現它。這樣的面向接口有什么意義哪? (為了用Spring的事務的情況除外)
  
  根據"迪比特法則(Law of Demter)",一個對象應當對其他對象有盡可能少的了解。一個接口內應該只定義對方所需要的方法,而不要把一些沒用的方法聲明放在接口里面。
  
  例如如下一個類:
  
  public class MyCounter
  
  {
  
  private int n1;
  
  private int n2;
  
  public MyCounter(int n1,int n2)
  
  {
  
  this。n1=n1;
  
  this。n2=n2;
  
  }
  
  public void setN1(int n1)
  
  {
  
  return this。n1 = n1;
  
  }
  
  public void setN2(int n2)
  
  {
  
  return this。n2 = n2;
  
  }
  
  public int getN1()
  
  {
  
  return n1;
  
  }
  
  public int getN2()
  
  {
  
  return n2;
  
  }
  
  public int getResult()
  
  {
  
  return n1 + n2;
  
  }
  
  }
  
  我們可以看到,這個類的主要目的是得到計算結果,所以正確的接口應該類似:
  
  public interface Counter
  
  {
  
  int getResult();
  
  }
  
  但是很多情況下,經常是這樣的接口:
  
  public interface Counter
  
  {
  
  int getResult();
  
  int getN1();
  
  int getN2();
  
  void setN1(int n1);
  
  void setN2(int n2);
  
  }
  
  我們想一想,這樣做有2個后果:
  
  1.除了getResult之外,其他的函數我們根本用不到,所以是多余的。
  
  2.假如我們要自己實現一個Counter,假如接口中僅僅定義了getResult,我們僅僅需要實現它就可以了。我們自己的類可能是多個數運算,有乘除加減等等各種運算,參數也有可能是一些數組。但是假如按照第二種方法聲明接口的話,我們就必須實現后面的四個方法,假如這樣的話,實現這樣東西不僅沒用,而且浪費時間。我們恐怕要大聲罵娘了吧。
  
  所以,接口有好的作用,但是不要濫用。
  
  ■ 假如你的接口永遠只有一個類實現,那么可能就沒有必要用接口。
  
  ■ 你的接口只需要聲明別人用到的函數即可。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
成年人精品视频| 亚洲天堂免费在线| 91精品久久久久久久久久入口| 国产成人福利网站| 亚洲老头同性xxxxx| 亚洲一区中文字幕在线观看| 欧美在线视频网| 欧美性色19p| 欧美日本黄视频| 日韩精品亚洲元码| 国产精品免费福利| 国产精品专区h在线观看| 亚洲视频在线视频| 国产精品盗摄久久久| 色偷偷av一区二区三区| 国产精品视频网站| 亚洲永久在线观看| 91在线看www| 欧美一级淫片videoshd| 裸体女人亚洲精品一区| 色偷偷91综合久久噜噜| 国产精品网站入口| 疯狂做受xxxx高潮欧美日本| 日韩专区在线观看| 亚洲一区国产精品| 亚洲欧美日韩中文在线制服| 在线免费看av不卡| 精品自拍视频在线观看| 久久久精品电影| 最近2019好看的中文字幕免费| 国产精品尤物福利片在线观看| 欧美日韩国产一区在线| 日韩欧美aⅴ综合网站发布| 亚洲电影中文字幕| 欧美视频一区二区三区…| 国产精品久久中文| 国产激情久久久| 亚洲天堂av网| 亚洲а∨天堂久久精品喷水| 2019日本中文字幕| 日韩视频免费在线| 91性高湖久久久久久久久_久久99| 在线观看国产成人av片| 亚洲字幕一区二区| 97**国产露脸精品国产| 欧美在线视频导航| 国产一区二区三区高清在线观看| 欧美日韩黄色大片| 欧美激情性做爰免费视频| 91国产一区在线| 精品视频9999| 日韩视频在线观看免费| 国产精品视频一区二区高潮| 亚洲人午夜色婷婷| 中文字幕日韩av电影| 日韩成人av网址| 欧美日产国产成人免费图片| 尤物99国产成人精品视频| 欧美在线一级视频| 亚洲国产精品悠悠久久琪琪| 欧美久久精品一级黑人c片| 欧美洲成人男女午夜视频| 国产精品久久久久久久久影视| 国产精品入口免费视| 久久久精品2019中文字幕神马| 欧美老女人在线视频| 国产精品久久久久秋霞鲁丝| 欧美特黄级在线| 欧美性猛xxx| 热久久美女精品天天吊色| 国产成人亚洲综合91精品| 日韩成人激情影院| 成人有码视频在线播放| 国产精品欧美亚洲777777| 欧美性xxxx18| 青青青国产精品一区二区| 欧美激情手机在线视频| 日韩a**站在线观看| 川上优av一区二区线观看| 日韩av网站大全| 亚洲一区二区在线播放| 成人av资源在线播放| 欧美日韩亚洲精品内裤| 国产精品视频一区二区三区四| 精品亚洲国产成av人片传媒| 国产精品久久久久久中文字| 国产主播欧美精品| 少妇精69xxtheporn| 成人精品一区二区三区电影免费| zzijzzij亚洲日本成熟少妇| 国产视频精品va久久久久久| 性欧美长视频免费观看不卡| 欧美性xxxxxx| 一区二区三区四区精品| 亚洲免费电影在线观看| 国产精品久久久999| 高潮白浆女日韩av免费看| 亚洲国产精品久久久久秋霞不卡| 精品一区二区三区三区| 欧美贵妇videos办公室| 久久久亚洲精品视频| 欧美激情一区二区三区成人| 日本一区二三区好的精华液| 这里只有精品丝袜| 91高清免费在线观看| 久久韩国免费视频| 精品国产一区二区三区久久狼黑人| 日韩欧中文字幕| 欧美国产日韩中文字幕在线| 91精品国产免费久久久久久| 一区二区日韩精品| 91在线观看免费高清完整版在线观看| 久久久久久久影院| 亚洲精品国产综合久久| 欧美日韩国产一区二区| 欧美黑人极品猛少妇色xxxxx| 日韩精品视频在线观看免费| 亚洲国产欧美日韩精品| 亚洲国产精品久久久久秋霞蜜臀| 国产精品1234| 日韩精品中文字幕在线| 亚洲欧美日韩久久久久久| 国产精品女主播视频| 日韩亚洲综合在线| 亚洲91精品在线| 91亚洲精品在线| 精品福利在线视频| 亚洲精品www久久久久久广东| 欧美在线视频在线播放完整版免费观看| 丝袜亚洲另类欧美重口| 亚洲激情第一页| 欧美裸体xxxx| 丝袜亚洲欧美日韩综合| 日韩视频在线免费| 91精品国产91久久久久福利| 国产日韩视频在线观看| 最近中文字幕mv在线一区二区三区四区| 久久久久久久久综合| 这里只有视频精品| 在线激情影院一区| 欧美在线观看日本一区| 欧日韩在线观看| 精品日韩中文字幕| 日韩欧美成人区| 高清日韩电视剧大全免费播放在线观看| www.欧美视频| 国产91精品在线播放| 国产精品一区二区三区免费视频| 91午夜理伦私人影院| 国产成人精品视频在线| 欧美与欧洲交xxxx免费观看| 最近2019中文字幕第三页视频| 98精品国产自产在线观看| 久久久免费在线观看| 欧美夜福利tv在线| 久久99久久99精品中文字幕| 成人信息集中地欧美| 久热99视频在线观看| 色综合久久悠悠| 大胆人体色综合| 在线观看国产精品日韩av| 正在播放亚洲1区| 日日狠狠久久偷偷四色综合免费| 国产91精品视频在线观看|