闂傚倸鍊峰ù鍥Υ閳ь剟鏌涚€n偅宕岄柡宀€鍠栭、娑樷堪閸愮偓姣夋俊鐐€戦崕濠氬箯閿燂拷 (0) +1 闂傚倷娴囧畷鍨叏瀹ュ拋鍚嬮柛鈩冾殢娴硷拷 (0) +1 闂傚倸鍊搁崐鎼併偑鐎涙ḿ顩查柣鎴f缁狀垶鏌ㄩ悤鍌涘 (0) +1
闂傚倸鍊峰ù鍥Υ閳ь剟鏌涚€n偅宕岄柡宀€鍠栭、娑樷堪閸愮偓姣夋俊鐐€戦崕鏌ュ垂閸ф钃熼柣鏃囥€€閸嬫挸鈽夊▍顓т簼閹便劑宕惰閺€鑺ャ亜閺囩偞顥為悗姘炬嫹闂傚倸鍊风粈渚€骞栭銈嗗仏妞ゆ劧绠戠壕鍧楁煕閹邦垼鍤嬮柤鏉挎健閺屾稑鈽夊▎鎰▏缂傚倷璁查弲鐘诲蓟閻旂⒈鏁嶆繝濠傚枤閺嗩厼顪冮妶鍐ㄥ姷闁瑰嚖鎷�>>

正在阅读:细述Java技术开发规则--中级篇细述Java技术开发规则--中级篇

2005-07-22 10:16 出处: 作者:flyingwcy 责任编辑:moningfeng

  相关链接:细述Java技术开发规则--基本篇

  本文介绍的Java规则的说明分为3个主要级别,中级是平时开发用的比较多的级别,在今后将陆续写出其他的规则。遵守了这些规则可以提高程序的效率、使代码又更好的可读性等。

一、在finally方法里关掉input或者output资源,方法体里面定义了input或者output流的话,需要在finally里面把它关掉。

  以下这几种调用不需要遵守这条规则,因为colse()方法不起作用:

  java.io.StringWriter
  java.io.ByteArrayOutputStream
  java.io.ByteArrayInputStream


  如果再方法返回的时候没有调用close()方法来释放input()和output()的资源的话,会导致一个系统资源泄漏。而且在任何情况下都要确定在返回全调用了close()方法,包括出现异常的时候。所以需要在finally方法里面加入这个方法。这样就保证了在任何情况下都会关闭资源。

  错误示例:

public class CIO
{
 public void method (java.io.File f)
  {
 java.io.FileInputStream fis = null;
  try
   {
    fis = new java.io.FileInputStream (f);
    fis.read ();
    fis.close ();
  } catch (java.io.FileNotFoundException e1)
   {
    System.out.println("File not found");
  } catch (java.io.IOException e2)
   {
    System.out.println("I/O Exception");
  }
// 如果出现异常,这里就不能保证关闭资源。
 }
}


  修正后的代码:

public class CIOFixed
{
 public void method (java.io.File f)
  {
   java.io.FileInputStream fis = null;
   try {
     fis = new java.io.FileInputStream(f);
     fis.read ();
    } catch (java.io.FileNotFoundException e1)
  {
   System.out.println("File not found");
  } catch (java.io.IOException e2)
  {
   System.out.println("I/O Exception");
  } finally
  {
   if (fis != null)
    {
     try
      {
       fis.close ();
    }
   catch (java.io.IOException e)
    {
     System.out.println("I/O Exception");
    }
   }
  }
 }
}



二、else的注意问题

  一般总认为如果if语句只有一句的话,那么{}就是可要可不要的了。可是如果if有else嵌套的话,就不一样了,{}是必需的

  错误示例:

  if (i < 5)
  if (i < 2)
  i++;
  else
  i--;


  修改后:

  if (i < 5)
  {
  if (i < 2)
  i++;
  }
  else
  {
  i--;
  }



三、不要再catch()块里什么代码也不放

  在catch()块里面放入一些错误处理代码是一个好的习惯。但是如果catch()里面有有关javadoc 的代码,那也是可以的。

  错误示例:

  try {
   System.in.read ();
   } catch (java.io.IOException e)
   {
    // 错误
   }


  正确:

  try {
    System.in.read ();
   } catch (java.io.IOException e)
   {
    System.out.println("Descriptive error");
   }


键盘也能翻页,试试“← →”键

关注我们

最新资讯离线随时看 聊天吐槽赢奖品
闂傚倸鍊风粈浣虹礊婵犲倴缂氱憸鏃堛€侀弽顓炲耿婵$偟绮弫鐘绘⒑闁偛鑻晶鎾煙椤旀娼愰柟宄版嚇瀹曘劍绻濋崒娆愭▕濠电姷顣藉Σ鍛村磻閹捐绠柨鐕傛嫹闂傚倸鍊烽悞锕傚箖閸洖纾块柟鎯版绾剧粯绻涢幋娆忕仼闁哄嫨鍎甸幃姗€鎮欓弶鍨彑婵炲瓨绮嶇划鎾诲蓟濞戙埄鏁冮柨婵嗘椤︺儵姊洪崨濠冾棖闁瑰嚖鎷�