posts - 3,  comments - 3,  trackbacks - 0

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

          ? 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;
          ??}

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

          只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          <2006年6月>
          28293031123
          45678910
          11121314151617
          18192021222324
          2526272829301
          2345678

          我正在讀

          常用鏈接

          留言簿(1)

          隨筆檔案

          我的其他博客

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

          搜索

          •  

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

          主站蜘蛛池模板: 隆子县| 昭觉县| 佛教| 垦利县| 缙云县| 仲巴县| 汤原县| 湟源县| 芮城县| 桐柏县| 丰台区| 彭水| 涪陵区| 仪陇县| 蓬安县| 普定县| 龙山县| 淮滨县| 绍兴县| 怀柔区| 元谋县| 广饶县| 中西区| 天峻县| 泸西县| 伊春市| 通海县| 延寿县| 独山县| 普兰店市| 改则县| 运城市| 老河口市| 天长市| 宜良县| 古浪县| 嘉善县| 铜山县| 五河县| 临江市| 东港市|