本文目錄一覽:
- 1、Java中throws和throw的區別講解
- 2、在java中,throw與throws有什麼區別
- 3、Java中throw有什麼用處?
- 4、JAVA的throw和throws怎麼用!
- 5、java中的throw到底有什麼用?
Java中throws和throw的區別講解
1.throw:(針對對象的做法)
拋出一個異常,可以是系統定義的,也可以是自己定義的。下面舉兩個例子:
拋出Java中的一個系統異常:
public class One {
public void yichang(){
NumberFormatException e = new NumberFormatException();
throw e;
}
public static void main(String[] args){
One test = new One();
try{
test.yichang();
}catch(NumberFormatException e){
System.out.println(e.getMessage());
}
}
}
拋出一個自定義的異常:
public class People {
public static int check(String strage) throws MyException{
int age = Integer.parseInt(strage);
if(age 0){
throw new MyException(“年齡不能為負數!”);
}
return age;
}
public static void main(String[] args){
try{
int myage = check(“-101”);
System.out.println(myage);
}catch(NumberFormatException e){
System.out.println(“數據格式錯誤”);
System.out.println(“原因:” + e.getMessage());
}catch(MyException e){
System.out.println(“數據邏輯錯誤”);
System.out.println(“原因:” + e.getMessage());
}
}
}
public class MyException extends Exception{
private static final long serialVersionUID = 1L;
private String name;
public MyException(String name){
this.name = name;
}
public String getMessage(){
return this.name;
}
}
2.throws:(針對一個方法拋出的異常)
拋出一個異常,可以是系統定義的,也可以是自己定義的。
拋出java中的一個系統異常:
public class One {
public void yichang() throws NumberFormatException{
int a = Integer.parseInt(“10L”);
}
public static void main(String[] args){
One test = new One();
try{
test.yichang();
}catch(NumberFormatException e){
System.out.println(e.getMessage());
}
}
}
拋出一個自定義異常:
public class People {
public static int check(String strage) throws MyException{
int age = Integer.parseInt(strage);
if(age 0){
throw new MyException(“年齡不能為負數!”);
}
return age;
}
public static void main(String[] args){
try{
int myage = check(“-101”);
System.out.println(myage);
}catch(NumberFormatException e){
System.out.println(“數據格式錯誤”);
System.out.println(“原因:” + e.getMessage());
}catch(MyException e){
System.out.println(“數據邏輯錯誤”);
System.out.println(“原因:” + e.getMessage());
}
}
}
public class MyException extends Exception{
private static final long serialVersionUID = 1L;
private String name;
public MyException(String name){
this.name = name;
}
public String getMessage(){
return this.name;
}
}
3.那麼下面我要說究竟什麼時候用哪種:
如果是系統異常的話可以什麼都不用做,也可以針對方法拋出一個異常,因為系統異常是可以被系統自動捕獲的,所以這個異常究竟是要在方法內部解決還是交給上
層函數去解決其實效果是一樣的。但是我查了很多資料,即使會拋出異常能被系統所捕獲的話還是建議針對方法寫一個throws,因為這樣在完成一個大型任務
的時候可以讓別的程序員知道這裡會出現什麼異常。
如果是自己定義的異常,則必須要用throws拋出該方法可能拋出的異常,否則編譯會報錯。
在java中,throw與throws有什麼區別
1、throw是在代碼塊內的,即在捕獲方法內的異常並拋出時用的;
2、throws是針對方法的,即將方法的異常信息拋出去
3、可以理解為throw是主動(在方法內容里我們是主動捕獲並throw的),而throws是被動(在方法上是沒有捕獲異常進行處理,直接throws的)
4、例子:
public void str2int(String str) throws Exception { //這裡將得到的異常向外拋出
try {
System.out.println(Integer.parseInt(str));
} catch(NumberFormatException e) {
//TODO 這裡可以做一些處理,處理完成後將異常報出,讓外層可以得到異常信息
throw new Exception(“格式化異常”);
}
}
Java中throw有什麼用處?
throw在 java中是關於異常的操作.
首先異常在java中的意思是: 一些可以導致程序出問題的因素,比如書寫錯誤,邏輯錯誤或者是api的應用錯誤等等. 為了防止程序的崩潰就要預先檢測這些因素,所以java 使用了異常這個機制.
在java中異常是靠 “拋出” 也就是英語的”throw” 來使用的,意思是如果發現到什麼異常的時候就把錯誤信息 “拋出”
JAVA的throw和throws怎麼用!
throw是語句拋出一個異常;語法:throw(異常對象);
throws是方法可能拋出異常的聲明。(用在聲明方法時,表示該方法可能要拋出異常) ;語法:[(修飾符)](返回值類型)(方法名)([參數列表])[throws(異常類)]{……}
當某個方法可能會拋出某種異常時用於throws 聲明可能拋出的異常,然後交給上層調用它的方法程序處理。如:
擴展資料:
throw與throws的區別
1、throw用在方法體內,上面代碼顯示了,是直接在main方法體內
throws用在方法聲明後面,表示再拋出異常,由該方法的調用者來處理。這個看上面的代碼就理解了。
2、throw是具體向外拋異常的,拋出的是一個異常實例。
throws聲明了是哪種類型的異常,使它的調用者可以捕獲這個異常。
3、throw,如果執行了,那麼一定是拋出了某種異常了,安生throws表示可能出現,但不一定。
4、同時出現的時候,throws出現在函數頭、throw出現在函數體,兩種不會由函數去處理,真正的處理由函數的上層調用處理。
參考資料:百度百科 異常處理
java中的throw到底有什麼用?
throw在java中是關於異常的操作。
首先異常在java中的意思是一些可以導致程序出問題的因素,比如書寫錯誤,邏輯錯誤或者是api的應用錯誤等等,為了防止程序的崩潰就要預先檢測這些因素,所以java 使用了異常這個機制。
在java中異常是靠 “拋出” 也就是英語的”throw” 來使用的,意思是如果發現到什麼異常的時候就把錯誤信息 “拋出”。
所以如果沒有throw,發生異常,只能由java的最後一道防線jvm去處理,性質不一樣。
擴展資料:
注意事項
throw代表動作,表示拋出一個異常的動作,throws代表一種狀態,代表方法可能有異常拋出。throw用在方法實現中,而throws用在方法聲明中,throw只能用於拋出一種異常,而throws可以拋出多個異常。
throw關鍵字用來在程序中明確的拋出異常,相反,throws語句用來表明方法不能處理的異常。每一個方法都必須要指定哪些異常不能處理,所以方法的調用者才能夠確保處理可能發生的異常,多個異常是用逗號分隔的。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/304332.html