Java中處理異常throw和throws


1.首先我們來了解什么是異常呢?

     異常阻止當前方法或作用域繼續執行的問題。

2.處理異常

   說到處理異常,我們當然會想到 try catch finally

   在java中我們會對異常的處理有更高的認識 我們會學習 throw throws等更好的處理異常

3.常見異常

  

4.throw關鍵字:語句拋出異常   throws關鍵字:聲明異常(方法拋出一個異常)

    01.throw   是語句拋出一個異常。

語法:throw (異常對象);
         throw e;

    02. throws  是方法可能拋出異常的聲明。(用在聲明方法時,表示該方法可能要拋出異常)   調用者必須做出處理(捕獲或繼續拋出)

語法:[(修飾符)](返回值類型)(方法名)([參數列表])[throws(異常類)]{......}
            public void doA(int a) throws Exception1,Exception3{......}

    03.throws可以單獨使用,但throw不能, throw要么和try-catch-finally語句配套使用,要么與throws配套使用。但throws可以單獨使 用,然后再由處理異常的方法捕獲。

    04.throw語句用在方法體內,表示拋出異常,由方法體內的語句處理 
         throws語句用在方法聲明后面,表示再拋出異常,由調用這個方法的上一級方法中的語句來處理,必須做出處理(捕獲或繼續聲明)

    05.throws主要是聲明這個方法會拋出這種類型的異常,使其他地方調用它時知道要捕獲這個異常,使得提醒必須做出處理。否則編譯是不會通過的。
         throw是具體向外拋異常的動作,所以它是拋出一個異常實例。

 

eg:

public void dothing(int a,int b) throws Exception1,Exception3 {
           try{
                 //......

           }catch(Exception1 e){
              throw e;
           }catch(Exception2 e){
              System.out.println("自己打印提示,不拋出");
           }
           if(a!=b)
              throw new  Exception3("自定義異常");
}

代碼塊中可能會產生3個異常,(Exception1,Exception2,Exception3)。
如果產生Exception1異常,則捕獲之后再拋出,由該方法的調用者去處理。
如果產生Exception2異常,則該方法自己處理了(即打印出字符串:自己打印提示,不拋出)。所以該方法就不會再向外拋出Exception2異常了,void dothing() throws Exception1,Exception3 里面的Exception2也就不用寫了(當然你寫了也不會報錯的),throws 就是聲明可能拋出的錯誤,而Exception2 並未做出拋出操作。
而Exception3異常是該方法的某段邏輯出錯,程序員自己做了處理,在該段邏輯錯誤的情況下拋出異常Exception3,則該方法的調用者也要處理此異常。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM