欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
Android編程風(fēng)格 - Android中文網(wǎng)
 基本規范

異常

1, 盡量不要使用try catch捕獲異常,而是顯式的拋出一個(gè)異常。
2, 使用try catch 一定要在catch語(yǔ)句中做好相應的處理,不能留空。
3, 不要捕獲Exception類(lèi)型的異常

Java代碼:
  privatefinalHandlermAttachmentEditorHandler=newHandler(){
  
  @Override
  publicvoidhandleMessage(Messagemsg){
  
  switch(msg.what){
  
  caseAttachmentEditor.MSG_EDIT_SLIDESHOW:{
  
  try{//'''不要使用trycatch'''
  
  editSlideshow();
  
  }catch(Exceptione){//不要在這里捕獲基類(lèi)Exception
  
  //這里留空非常危險,一旦出錯,根本找不到
  
  }
  
  break;
  
  }
  
  caseAttachmentEditor.MSG_SEND_SLIDESHOW:{
  
  
  if(isPreparedForSending()){
  
  ComposeMessageActivity.this.confirmSendMessageIfNeeded();
  }
  
  break;
  }


為什么不要使用try catch?

我們應該對于如何劃分異常的層次有一個(gè)理解,對于完全已知的錯誤,結合邏輯編寫(xiě)處理這種錯誤的代碼,自己無(wú)法處理的,繼續向上拋出,增加程序的魯棒性,但是如果你根本不確定報出什么異常,請不要這樣做。

為什么要聲明方法拋出異常?
方法是否拋出異常與方法返回值的類(lèi)型一樣重要。假設方法拋出異常確沒(méi)有聲明該方法將拋出異常,那么客戶(hù)程序員可以調用這個(gè)方法而且不用編寫(xiě)處理異常的代碼。那么,一旦出現異常,那么這個(gè)異常就沒(méi)有合適的異??刂破鱽?lái)解決。
為什么不要捕獲Exception類(lèi)異常?

Exception分為兩類(lèi):unchecked(RuntimeException 和 error) & checked,因為RuntimeException這種由于程序本身錯誤導致的異常,是程序員的問(wèn)題。你catchException,意味著(zhù)子類(lèi)RuntimeException也被catch了。

在catch中可以做什么?

1,賦默認值
2,做一些錯誤處理
3,拋出一個(gè)自己封裝的異常類(lèi)對象

在catch中不可以做什么?

1,拋出一個(gè)RuntimeException。(除非你認為你的程序除了崩掉重啟別無(wú)他法,否則別這么做)

finally

finally 這個(gè)關(guān)鍵字很不好用,因為我們根本無(wú)法確定什么時(shí)候他會(huì )執行,是return之前還是之后?沒(méi)人知道。除非你要對外部資源進(jìn)行一些收尾,比如使用InputStream,你要close。否則,不要用它。

引入

1,引用順序:android,三方按字母表,java(x) (這是一個(gè)graceful的問(wèn)題)
2,引用方式:一定要引全類(lèi)名,不要引用整個(gè)包。

Java代碼:
 
 importsfoo.Bar;//right
  
  importsfoo.*;//wron


注釋

新加代碼要求如下:

1,CopyRight Statement,聲明結束后空一行寫(xiě)代碼(非必須)
2,每個(gè)類(lèi)都要有描述注釋
3,方法一定要寫(xiě)注釋描述功能,參數,返回值,重要的變量要有注修改源碼要求如下:

解釋修改原因

Java代碼:

  /*
  
  *Copyright(C)2010TheAndroidOpenSourceProject
  
  *LicensedundertheApacheLicense,Version2.0(the"License");
  
  *youmaynotusethisfileexceptincompliancewiththeLicense.
  
  *YoumayobtainacopyoftheLicenseat
  
  *
  
  *http://www.apache.org/licenses/LICENSE-2.0
  
  *Unlessrequiredbyapplicablelaworagreedtoinwriting,software
  
  *distributedundertheLicenseisdistributedonan"ASIS"BASIS,
  
  *WITHOUTWARRANTIESORCONDITIONSOFANYKIND,eitherexpressorimplied.
  
  *SeetheLicenseforthespecificlanguagegoverningpermissionsand
  
  *limitationsundertheLicense.
  
  */
  
  
  packageeoe.android.internal.foo;
  
  importandroid.os.Blah;
  
  importandroid.view.Yada;
  
  importjava.sql.ResultSet;
  
  importjava.sql.SQLException;
  
  /**
  
  *DoesXandYandprovidesanabstractionforZ.
  
  *@authorJackyYang
  
  */
  
  publicclassFoo{
  
  ...
  
  }


方法

方法一定要短小精悍,功能專(zhuān)注,不要試圖把一個(gè)大的功能放在一個(gè)方法中實(shí)現。

局部變量

局部變量的作用域一定要最小化,即什么時(shí)候用,什么時(shí)候聲明,不要提前聲明了很多變量,但是最后才用。

縮進(jìn)
代碼塊縮進(jìn)4字符,不要用tab

Java代碼:
  publicvoidpay(){
  
  //這里空了4字符
  
  }

 

換行縮進(jìn)8字符,不要用tab

Java代碼:
 
 Instrumenti=someLongExpression(that,wouldNotFit,on,one,line)


成員變量

1,靜態(tài)的變量以s開(kāi)頭
2,非靜態(tài),非公開(kāi)變量以m開(kāi)頭
3,靜態(tài)常量 全部大寫(xiě)
4,成員變量定義在類(lèi)的開(kāi)始,或者在使用成員變量的方法之前聲

Java代碼
  publicclassMyClass{
  
  publicstaticfinalintSOME_CONSTANT=42;
  
  publicintpublicField;
  
  privatestaticMyClasssSingleton;
  
  intmPackagePrivate;
  
  privateintmPrivate;
  
  protectedintmProtected;


括號 { }


使用規則只有兩種:

Java代碼:
 
 if(condition){
  
  body();//標準
  
  }
  if(condition)body();//如果只有一條語(yǔ)句,也可以這樣


代碼行長(cháng)度

代碼行長(cháng)度不超過(guò)100字符

注解

1,注解離方法最近
2,一般不要使用SuppressWarning,要使用的話(huà),請加上TODO注釋

Java代碼:
 
 //TODO:Thethird-partyclasscom.third.useful.Utility.rotate()needsgenerics
  
  @SuppressWarnings("generic-cast")
  
  List<String>blix=Utility.rotate(blax)


調試規范

Log的使用

1,在調試中,非常鼓勵大家使用log查找問(wèn)題,但是問(wèn)題結束后,在check in之前,一定要確定你的代碼注釋已經(jīng)關(guān)閉。
2,Log的級別要視情況而定,不要隨便使用Log.e
3,代碼要使用規范的TAG和調試開(kāi)關(guān),方便以后使

Java代碼:
  privatestaticfinalbooleanDBG=true;
  
  privatestaticfinalStringTAG="MediaScanner";
  
  if(DBG){
  
  Log.d(TAG,"debuginfo");
  
  }


測試

在正規開(kāi)發(fā)中,一定要有測試的環(huán)節,android有自己一套測試的工具

Java代碼:
  //標準的testcase
  
  publicclassLaunchTestextendsAndroidTestCase{
  
  testInterceptSendSms(){//格式:testMethod_specificCase1如果沒(méi)有case,那就直接寫(xiě)testMethod,如果沒(méi)有具體方法而是測的功能,那就直接寫(xiě)功能名,testCompose
  
  //但是更多的還是方法級的測試
  
  }
  
  //測試Activity
  
  publicclassInterceptSendMmsextendsActivityInstrumentationTestCase2<ComposeMessageActivity>{
  
  testInterceptSendSms(){//格式:testMethod_specificCase1如果沒(méi)有case,那就直接寫(xiě)testMethod
  
  }
  
  }

本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
面試必備
java異常理解(2)
Java的Exception和Error面試題10問(wèn)10答
Java異常處理總結
深入學(xué)習java異常機制
Java異常處理:如何寫(xiě)出“正確”但被編譯器認為有語(yǔ)法錯誤的程序
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久