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