posts - 3,  comments - 3,  trackbacks - 0
            2006年6月20日
          ??????????我這個人有時比較粗心大意,天生對一些記憶性的東西容易搞錯,比如到底一個判斷方法執(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?
          =?"出錯提示和幫助免責(zé)信息";
          ????????????????}
          原來錯誤代碼:
          ?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?
          =?"出錯提示和幫助免責(zé)信息";
          ????????????????}

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

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

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

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

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

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

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

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

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

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

          posted @ 2006-06-05 17:34 阿郎 閱讀(2105) | 評論 (0)編輯 收藏
          僅列出標(biāo)題  
          <2025年6月>
          25262728293031
          1234567
          891011121314
          15161718192021
          22232425262728
          293012345

          我正在讀

          常用鏈接

          留言簿(1)

          隨筆檔案

          我的其他博客

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

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 松原市| 临泽县| 渭源县| 田林县| 马龙县| 连城县| 浪卡子县| 武鸣县| 长泰县| 昭通市| 石嘴山市| 铁力市| 莱西市| 苍山县| 乐平市| 沁阳市| 乐陵市| 敦化市| 双鸭山市| 方山县| 哈密市| 志丹县| 湘乡市| 内乡县| 清河县| 临泽县| 安溪县| 鄯善县| 郓城县| 三河市| 盐源县| 开鲁县| 三台县| 文水县| 浦城县| 铜川市| 花莲市| 徐州市| 长汀县| 繁昌县| 三门峡市|