1.首先咱們來了解什麼是異常呢?java
異常阻止當前方法或做用域繼續執行的問題。程序員
2.處理異常學習
說處處理異常,咱們固然會想到 try catch finallyspa
在java中咱們會對異常的處理有更高的認識 咱們會學習 throw throws等更好的處理異常3d
3.常見異常code
4.throw關鍵字:語句拋出異常 throws關鍵字:聲明異常(方法拋出一個異常)對象
01.throw 是語句拋出一個異常。blog
語法: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,則該方法的調用者也要處理此異常。