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

          ?????????今天的程序中有檢查出一個錯誤,本來應(yīng)該這樣執(zhí)行的程序:如果一次不成功則執(zhí)行第二次,第二次不成功則執(zhí)行第三次,如果第三次不成功則執(zhí)行一個特定操作。修改后代碼如下:
          ?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?
          =?"出錯提示和幫助免責信息";
          ????????????????}
          原來錯誤代碼:
          ?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?
          =?"出錯提示和幫助免責信息";
          ????????????????}

          錯誤的方法使得程序沒有達到一次達不到目的重試兩次的目的簡直返暈,竟然犯這種處級以下錯誤。
          posted @ 2006-06-20 15:43 阿郎 閱讀(216) | 評論 (3)編輯 收藏

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

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

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

          ????
          // 讀取配置文件
          ???? 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;
          ??}

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

          我正在讀

          常用鏈接

          留言簿(1)

          隨筆檔案

          我的其他博客

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 望奎县| 花莲市| 万山特区| 云霄县| 泽州县| 安康市| 四会市| 沙田区| 新竹县| 四平市| 永春县| 新巴尔虎左旗| 阜阳市| 安阳市| 上杭县| 石城县| 呼玛县| 乌海市| 藁城市| 广灵县| 察哈| 鱼台县| 陵川县| 榆林市| 顺昌县| 宁强县| 长宁区| 阿坝县| 徐水县| 巴东县| 介休市| 菏泽市| 双流县| 子洲县| 连山| 五大连池市| 封开县| 雷州市| 什邡市| 揭东县| 台江县|