Java中throw和throws的區別

2021-06-16 22:29:05 字數 1100 閱讀 7750

1、throws出現在方法函式頭;而throw出現在函式體。

2、throws 是乙個宣告(它宣告這裡可能出現異常,但未必一定出現),而 throw 是乙個動作(它丟擲也可以說它產生乙個異常出現,只要執行到了這個關鍵字,異常必定出現)。

throw是語句丟擲乙個異常。

語法:throw (異常物件);

throw e;      

throw new 異常物件類名

(); throws是方法可能丟擲異常的宣告。(用在宣告方法時,表示該方法可能要丟擲異常)

語法:[(修飾符)](返回值型別)(方法名)([引數列表])[throws(異常類)]

public void doa(int a) throws exception1,exception3

舉例:throws e1,e2,e3只是告訴程式這個方法可能會丟擲這些異常,方法的呼叫者可能要處理這些異常,而這些異常e1,e2,e3可能是該函式體產生的。

throw則是明確了這個地方要丟擲這個異常。

如: void doa(int a) throws exception1,exception3catch(exception1 e)catch(exception2 e)

if(a!=b)

throw new  exception3("自定義異常");

}**塊中可能會產生3個異常,(exception1,exception2,exception3)。

如果產生exception1異常,則捕獲之後再丟擲,由該方法的呼叫者去處理。

如果產生exception2異常,則該方法自己處理了(即system.out.println("出錯了!");)。所以該方法就不會再向外丟擲exception2異常了,void doa() throws exception1,exception3 裡面的exception2也就不用寫了。

而exception3異常是該方法的某段邏輯出錯,程式設計師自己做了處理,在該段邏輯錯誤的情況下丟擲異常exception3,則該方法的呼叫者也要處理此異常。

兩者都是只是丟擲或者可能丟擲異常,但是不會由函式去處理異常,真正的處理異常由函式的上層呼叫處理。

java異常處理中throw和throws的區別?

throw和throws的區別主要有兩點!1 throw 後面跟的是物件,throws後面跟的是異常類 2 throw 定義函式體的內部,throws定義在函式名後。丟擲異常物件的型別 class demo 自定義異常要繼承exception 類 class myexception extends ...

Java中處理異常throw和throws

throw關鍵字 語句丟擲異常 throws關鍵字 宣告異常 方法丟擲乙個異常 01.throw 是語句丟擲乙個異常。語法 throw 異常物件 throw e 02.throws 是方法可能丟擲異常的宣告。用在宣告方法時,表示該方法可能要丟擲異常 呼叫者必須做出處理 捕獲或繼續丟擲 語法 修飾符 ...

Java異常處理的throw和throws的區別

1.區別 throws是用來宣告乙個方法可能丟擲的所有異常資訊,throws是將異常宣告但是不處理,而是將異常往上傳,誰呼叫我就交給誰處理。而throw則是指丟擲的乙個具體的異常型別。2.分別介紹 throws 用於宣告異常,例如,如果乙個方法裡面不想有任何的異常處理,則在沒有任何 進行異常處理的時...