java throw和throws的區別

2021-07-03 17:10:02 字數 1940 閱讀 7302

區別一:throw 

是語句丟擲乙個異常;

throws 

是方法丟擲乙個異常;

throw

語法:throw <

異常物件

在方法宣告中,新增

throws

子句表示該方法將丟擲異常。

throws

語法:[<

修飾符》]<

返回值型別

><

方法名》([<

引數列表

>])

[throws<

異常類》] 

其中:異常類可以宣告多個,用逗號分割。

區別二:

throws

可以單獨使用,但

throw

不能;

區別三:

throw

要麼和try-catch-finally

語句配套使用,要麼與

throws

配套使用。

但throws

可以單獨使用,然後再由處理異常的方法捕獲。

throws 

e1,e2,e3 

只是告訴程式這個方法可能會丟擲這些個異常,方法的呼叫者可能要處理

這些異常。而這些異常

e1,e2,e3

可能是該函式體產生的。

而throw

是明確之處這個地方要丟擲這個異常。

void doa() throws exception1, exception3  catch(exception1 e)  catch(exception2 e)  

if (a != b) 

throw new exception3("

自定義異常

");  } 

**塊……中可能產生異常

exception1

、exception2

和exception3。

如果產生exception1

異常,則捕捉了之後丟擲由該方法的呼叫者去做處理;

如果產生exception2

異常,則該方法自己做了處理

(列印出了說出錯了

),所以該方法就不

會再向外丟擲

exception2異常了,

void doa() throws exception1,,excpetion3

裡面的

exception2

也就不用寫了;

而exception3

異常是該方法的某段邏輯出錯,程式設計師自己作了處理在該段邏輯錯誤的情況

下丟擲異常

exception3

,則呼叫者也需要處理。

throw

語句用在方法體內

,表示丟擲異常

,由方法體內的語句處理

throws

語句用在方法宣告後面

,表示再丟擲異常

,由呼叫這個方法的上一級方法中的語句來處理

throws

主要是宣告這個方法會丟擲這種型別的異常,使其他地方呼叫它時知道要捕獲這個

異常。

throw

是具體向外拋異常的動作,所以它是丟擲乙個異常例項。

throws

說明你有哪個可能,傾向

throw

的話,那就是你把那個傾向變成真實的了

同時:1)

throws

出現在方法函式頭;而

throw

出現在函式體; 2)

throws

表示出現異常的一種可能性,

並不一定會發生這些異常;

throw

則是丟擲了異常,

執行throw

則一定丟擲了某種異常; 3

)兩者都是消極處理異常的方式(這裡的消極並不是說這種方式不好),只是丟擲或者可能丟擲異常,但是不會由函式去處理異常,真正的處理異常由函式的上層呼叫處理。

java throw丟擲異常

1 throws關鍵字通常被應用在宣告方法時,用來指定可能丟擲的異常。多個異常可以使用逗號隔開。當在主函式中呼叫該方法時,如果發生異常,就會將異常拋給指定異常物件。如下面例子所示 public class shoot public static void main string args catch...

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 是方法可能丟擲異常的宣告。用在宣告方法時,表示該方法可能要丟擲異常 呼叫者必須做出處理 捕獲或繼續丟擲 語法 修飾符 ...