用戶程序自定義的異常和應用程序特定的異常,必須藉助於 throws 和 throw 語句來定義拋出異常。html
區別:程序員
一、概念函數
二、位置spa
三、通俗說法:code
格式:htm
1.1 throw是語句拋出一個異常。對象
語法:throw (異常對象);blog
throw e;get
1.2 throws是方法可能拋出異常的聲明。(用在聲明方法時,表示該方法可能要拋出異常)虛擬機
語法:[(修飾符)](返回值類型)(方法名)([參數列表])[throws(異常類)]{......}
public void doA(int a) throws Exception1,Exception3{......}
例子:
void doA(int a) throws IOException,{ try{ ...... }catch(Exception1 e){ throw e; }catch(Exception2 e){ System.out.println("出錯了!"); } if(a!=b) throw new Exception3("自定義異常"); } //代碼塊中可能會產生3個異常,(Exception1,Exception2,Exception3)。 //若是產生Exception1異常,則捕獲以後再拋出,由該方法的調用者去處理。 //若是產生Exception2異常,則該方法本身處理了(即System.out.println("出錯了!");)。因此該方法就不會再向外拋出Exception2異常了,void doA() throws Exception1,Exception3 裏面的Exception2也就不用寫了。 //而Exception3異常是該方法的某段邏輯出錯,程序員本身作了處理,在該段邏輯錯誤的狀況下拋出異常Exception3,則該方法的調用者也要處理此異常。
摘自:http://www.javashuo.com/article/p-rrizgspf-bo.html
使用 try 和 catch 關鍵字能夠捕獲異常。
try-catch和throws的區別:
即好比在3個類中,第3個類出現異常,可向上拋給第二個類,第二個類若是不想解決,可繼續拋給第一個類中去解決,而後在第一個類中(調用第三個類中方法會出現異常)==》就使用try-catch解決異常
至關於throws能夠向上指定拋到某一個類裏面去集合解決異常(使用try-catch解決異常),而try-catch是直接處理異常
IllegalArgumentException:代表向方法傳遞了一個不合法或不正確的參數