posts - 3,  comments - 3,  trackbacks - 0

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

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

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

          ????
          // 取得相應處理執(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;
          ??}

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

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


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

          我正在讀

          常用鏈接

          留言簿(1)

          隨筆檔案

          我的其他博客

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 黔西| 察哈| 安溪县| 调兵山市| 三明市| 肇庆市| 徐州市| 修水县| 湘潭县| 海林市| 平安县| 合肥市| 合作市| 塔河县| 滕州市| 长沙市| 乐亭县| 阿拉善左旗| 洛川县| 宜良县| 丰宁| 阿巴嘎旗| 兰西县| 温泉县| 定日县| 丹寨县| 阿荣旗| 手机| 巫溪县| 陇南市| 枞阳县| 防城港市| 许昌县| 漳浦县| 吴堡县| 平和县| 监利县| 方山县| 锦屏县| 汾西县| 宜都市|