posts - 3,  comments - 3,  trackbacks - 0
            2006年6月5日
          ??????????我這個(gè)人有時(shí)比較粗心大意,天生對(duì)一些記憶性的東西容易搞錯(cuò),比如到底一個(gè)判斷方法執(zhí)行后返回值是true還是false,一個(gè)if判斷條件應(yīng)該為真時(shí)執(zhí)行{}內(nèi)語(yǔ)句還是假時(shí)有時(shí)候經(jīng)常搞不清楚。
          ?????????今天作的程序中有一個(gè)需要判斷一個(gè)變量是否為空,如果不為空并執(zhí)行一個(gè)特定語(yǔ)句的程序,我就馬馬虎虎寫(xiě)成了如果為空則執(zhí)行這個(gè)語(yǔ)句。郁悶!!老是犯這類錯(cuò)誤!

          ?????????今天的程序中有檢查出一個(gè)錯(cuò)誤,本來(lái)應(yīng)該這樣執(zhí)行的程序:如果一次不成功則執(zhí)行第二次,第二次不成功則執(zhí)行第三次,如果第三次不成功則執(zhí)行一個(gè)特定操作。修改后代碼如下:
          ?if?(contents?==?null?||?contents?==?"")?{
          ????????????????????Thread.sleep(
          100);
          ????????????????????contents?
          =?this.getContent(a,?b);
          ????????????????}
          ?
          ????????????????
          if?(contents?==?null?||?contents?==?"")?{
          ????????????????????Thread.sleep(
          200);
          ????????????????????contents?
          =?this.getContent(a,?b);
          ????????????????}
          ?
          ????????????????
          if?(contents?==?null?||?contents?==?"")?{
          ????????????????????contents?
          =?"出錯(cuò)提示和幫助免責(zé)信息";
          ????????????????}
          原來(lái)錯(cuò)誤代碼:
          ?if?(contents?==?null?||?contents?==?"")?{
          ????????????????????Thread.sleep(
          100);
          ????????????????????contents?
          =?this.getContent(a,?b);
          ????????????????}
          else?if?(contents?==?null?||?contents?==?"")?{
          ????????????????????Thread.sleep(
          200);
          ????????????????????contents?
          =?this.getContent(a,?b);
          ????????????????}
          else?if?(contents?==?null?||?contents?==?"")?{
          ????????????????????contents?
          =?"出錯(cuò)提示和幫助免責(zé)信息";
          ????????????????}

          錯(cuò)誤的方法使得程序沒(méi)有達(dá)到一次達(dá)不到目的重試兩次的目的簡(jiǎn)直返暈,竟然犯這種處級(jí)以下錯(cuò)誤。
          posted @ 2006-06-20 15:43 阿郎 閱讀(214) | 評(píng)論 (3)編輯 收藏

          下面一段代碼是通過(guò)配置文件讀取類名,取得相應(yīng)的處理類的方法實(shí)例,方法要返回字符串形式的值。

          ? private ?String?A(Data?data)? {

          ????String?processClassName?
          = ? null ;? // 要通過(guò)配置文件讀取的類名

          ????
          // 讀取配置文件
          ???? try ? {
          ??????appconfig?c?
          = ?appconfig.getInstance( " appConfig " );
          ??????c.setConfigFile(
          new ?File( " ./config/appConfig.txt " ));
          ??????processClassName?
          = ?c.get( " aaa. " ? + ?data.To? +
          ???????????????????????????????
          " .class " );
          ????}

          ????
          catch ?(NullPointerException?ef)? {
          ??????ef.printStackTrace();
          ??????
          return ? null ;
          ????}

          ????
          catch ?(IllegalStateException?ex)? {
          ??????ex.printStackTrace();
          ??????
          return ? " 幫助信息 " ;
          ????}

          ????
          catch ?(Exception?ef)? {
          ??????ef.printStackTrace();
          ??????
          return ? null ;
          ????}

          ????
          // 判斷服務(wù)類是否已經(jīng)配置
          ???? if ?(processClassName? == ? null )? {
          ??????System.out.println(
          " 尚未配置 " ? + ?MMSTo? + ? " 的服務(wù)類 " );
          ?????? return ? null ;
          ????}

          ????
          // 取得相應(yīng)處理執(zhí)行類
          ????AIFC?aifc? = ? null ;
          ????
          try ? {
          ??????Class?BClass?
          = ?Class.forName(processClassName);
          ??????aifc?
          = ?(AIFC?)?BClass.newInstance();
          ????}

          ????
          catch ?(ClassNotFoundException?e)? {
          ??????e.printStackTrace();
          ??????
          return ? null ;
          ????}

          ????
          catch ?(InstantiationException?e)? {
          ??????e.printStackTrace();
          ??????
          return ? null ;
          ????}

          ????
          catch ?(IllegalAccessException?e)? {
          ??????e.printStackTrace();
          ??????
          return ? null ;
          ????}


          ????String?content?
          = ? "" ;
          ????
          try ? {
          ??????content?
          = ?aifc?.getContent(mmsdata.sd,?????????????????????????mmsdata.To);
          ????}

          ????
          catch ?(Exception?ef)? {
          ??????ef.printStackTrace();
          ??????
          return ? null ;
          ????}


          ????
          return ?content;
          ??}

          方法中讀取配置文件時(shí)情況比較復(fù)雜,有多種可能出現(xiàn)的異常,如果不能很好的拋出和捕捉異常會(huì)導(dǎo)致程序的非正常退出或中斷,如果此方法為掃描方法,那么將無(wú)法進(jìn)行下面的操作。但各種異常產(chǎn)生的原因不同,有需要區(qū)分不同情況以對(duì)程序進(jìn)行控制。但是調(diào)用此方法的對(duì)象只能通過(guò)返回值一種途徑對(duì)不同情況進(jìn)行判斷。所以在捕捉不同異常同時(shí)又需要進(jìn)行返回不同結(jié)果的設(shè)計(jì)。這也是一種捕獲異常而不中斷程序的一種方法。
          posted @ 2006-06-14 22:19 阿郎 閱讀(680) | 評(píng)論 (0)編輯 收藏

          ???????? 靜態(tài)代碼塊(static block ),不包含在任何方法體中當(dāng)類被載入時(shí),自動(dòng)執(zhí)行靜態(tài)代碼塊,且只被執(zhí)行一次經(jīng)常用于類屬性的初始化。 這是網(wǎng)上通行的關(guān)于靜態(tài)代碼塊的定義。
          ???????? 在Java中,類裝載器把一個(gè)類裝入Java虛擬機(jī)中,要經(jīng)過(guò)三個(gè)步驟來(lái)完成:裝載、鏈接和初始化,其中鏈接又可以分成校驗(yàn)、準(zhǔn)備和解析三步,除了解析外,其它步驟是嚴(yán)格按照順序完成的,各個(gè)步驟的主要工作如下:

          • 裝載:查找和導(dǎo)入類或接口的二進(jìn)制數(shù)據(jù);

          • 鏈接:執(zhí)行下面的校驗(yàn)、準(zhǔn)備和解析步驟,其中解析步驟是可以選擇的;

          • 校驗(yàn):檢查導(dǎo)入類或接口的二進(jìn)制數(shù)據(jù)的正確性;

          • 準(zhǔn)備:給類的靜態(tài)變量分配并初始化存儲(chǔ)空間;

          • 解析:將符號(hào)引用轉(zhuǎn)成直接引用;

          • 初始化:激活類的靜態(tài)變量的初始化Java代碼和靜態(tài)Java代碼塊。

          初始化類中屬性是靜態(tài)代碼塊的常用用途,但只能使用一次。

          posted @ 2006-06-05 17:34 阿郎 閱讀(2105) | 評(píng)論 (0)編輯 收藏
          <2006年6月>
          28293031123
          45678910
          11121314151617
          18192021222324
          2526272829301
          2345678

          我正在讀

          常用鏈接

          留言簿(1)

          隨筆檔案

          我的其他博客

          • .net 博客
          • 寫(xiě)我學(xué)習(xí)使用.net 的點(diǎn)點(diǎn)滴滴

          搜索

          •  

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

          主站蜘蛛池模板: 托克逊县| 房产| 台安县| 微山县| 兴和县| 家居| 韶山市| 尚义县| 德惠市| 武宣县| 乌拉特中旗| 平乡县| 濉溪县| 西华县| 昆明市| 江川县| 栾城县| 林口县| 凤山县| 湘潭市| 九江市| 巴中市| 津市市| 修武县| 湘阴县| 铅山县| 宁晋县| 洱源县| 东海县| 磴口县| 岐山县| 宁明县| 松原市| 肃南| 武平县| 绥德县| 苏尼特左旗| 阜新市| 十堰市| 礼泉县| 杂多县|