關(guān)鍵字throw和throws的區(qū)別

           

          void  foo()  throws  FooException,Foo2Exception{ 
                    //other  code 
                     
                    throw  new  FooException(); 
            } 

          throw語句用在方法體內(nèi),表示拋出異常,由方法體內(nèi)的語句處理。不能單獨(dú)使用,要么和try catch一起使用,要么和trows一起使用。 
          throws
          語句用在方法聲明后面,表示這個(gè)方法可能拋出異常, 表示的是一種傾向、可能,但不一定實(shí)際發(fā)生。由調(diào)用這個(gè)方法的上一級方法中的語句來處理 。后面可以跟多個(gè)異常,中間用逗號分割。

           

          例如:

          void doA() throws Exception1, Exception3 {
            try {
              ……
            } catch(Exception1 e) {
              throw e;
            } catch(Exception2 e) {
              System.out.println("
          出錯(cuò)了");
            }
            if (a != b)
              throw new Exception3("
          自定義異常");
          }

          代碼塊……中可能產(chǎn)生異常Exception1Exception2Exception3
          如果產(chǎn)生Exception1異常,則捕捉了之后拋出由該方法的調(diào)用者去做處理;
          如果產(chǎn)生Exception2異常,則該方法自己做了處理(打印出了說出錯(cuò)了),所以該方法就不會再向外拋出Exception2異常了,void doA() throws Exception1,,Excpetion3里面的Exception2也就不用寫了;
          Exception3異常是該方法的某段邏輯出錯(cuò),程序員自己作了處理在該段邏輯錯(cuò)誤的情況下拋出異常Exception3,則調(diào)用者也需要處理。

           

          posted on 2008-07-24 10:44 chenkai 閱讀(725) 評論(0)  編輯  收藏


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


          網(wǎng)站導(dǎo)航:
           
          <2008年7月>
          293012345
          6789101112
          13141516171819
          20212223242526
          272829303112
          3456789

          導(dǎo)航

          統(tǒng)計(jì)

          常用鏈接

          留言簿(2)

          隨筆檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 江津市| 鹤壁市| 林芝县| 荣成市| 平潭县| 宿松县| 磐石市| 华池县| 安国市| 阿拉善左旗| 固镇县| 崇州市| 察隅县| 济源市| 利川市| 綦江县| 夏邑县| 绥化市| 宁国市| 镶黄旗| 西和县| 义马市| 平泉县| 弥渡县| 宝应县| 临西县| 梧州市| 霸州市| 天门市| 云龙县| 镇江市| 郁南县| 墨脱县| 巴林右旗| 甘谷县| 集贤县| 津市市| 怀集县| 赫章县| 双柏县| 桑日县|