JAVA中throws和throw有什麼區別
一直對java中的throws和throw不太理解。你知道JAVA中throws和throw有什麼區別嗎?下面是小編為大家帶來的關於JAVA中throws和throw有什麼區別的知識,歡迎閲讀。
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{
ang();
}catch(NumberFormatException e){
tln(essage());
}
}
}
拋出一個自定義的異常:
public class People {
public static int check(String strage) throws MyException{
int age = eInt(strage);
if(age < 0){
throw new MyException("年齡不能為負數!");
}
return age;
}
public static void main(String[] args){
try{
int myage = check("-101");
tln(myage);
}catch(NumberFormatException e){
tln("數據格式錯誤");
tln("原因:" + essage());
}catch(MyException e){
tln("數據邏輯錯誤");
tln("原因:" + essage());
}
}
}
public class MyException extends Exception{
private static final long serialVersionUID = 1L;
private String name;
public MyException(String name){
= name;
}
public String getMessage(){
return ;
}
}
throws:(針對一個方法拋出的異常)
拋出一個異常,可以是系統定義的,也可以是自己定義的。
拋出java中的一個系統異常:
public class One {
public void yichang() throws NumberFormatException{
int a = eInt("10L");
}
public static void main(String[] args){
One test = new One();
try{
ang();
}catch(NumberFormatException e){
tln(essage());
}
}
}
拋出一個自定義異常:
public class People {
public static int check(String strage) throws MyException{
int age = eInt(strage);
if(age < 0){
throw new MyException("年齡不能為負數!");
}
return age;
}
public static void main(String[] args){
try{
int myage = check("-101");
tln(myage);
}catch(NumberFormatException e){
tln("數據格式錯誤");
tln("原因:" + essage());
}catch(MyException e){
tln("數據邏輯錯誤");
tln("原因:" + essage());
}
}
}
public class MyException extends Exception{
private static final long serialVersionUID = 1L;
private String name;
public MyException(String name){
= name;
}
public String getMessage(){
return ;
}
}
那麼下面我要説究竟什麼時候用哪種:
如果是系統異常的話可以什麼都不用做,也可以針對方法拋出一個異常,因為系統異常是可以被系統自動捕獲的,所以這個異常究竟是要在方法內部解決還是交給上層函數去解決其實效果是一樣的。但是我查了很多資料,即使會拋出異常能被系統所捕獲的話還是建議針對方法寫一個throws,因為這樣在完成一個大型任務的時候可以讓別的程序員知道這裏會出現什麼異常。
如果是自己定義的異常,則必須要用throws拋出該方法可能拋出的異常,否則編譯會報錯
-
經典的Java main方法面試題10個
在java中,main()方法是java應用程序的入口方法。本文是本站小編搜索整理的關於經典的Javamain方法面試題10個,特別適合參加Java面試的朋友閲讀,希望對大家有所幫助!想了解更多相關信息請持續關注我們應屆畢業生考試網!1.不用main方法如何定義一個類?不行,沒有main方...
-
Java常用數據結構及類
Java可以編寫桌面應用程序、Web應用程序、分佈式系統和嵌入式系統應用程序等。本文特意為大家收集整理了Java常用數據結構及類,希望大家喜歡!一、Vector類Vector類似於一個數組,但與數組相比在使用上有以下兩個優點。1、使用的時候無需聲明上限,隨着元素的增加,Vec...
-
全國計算機等級《二級JAVA》命題預測試卷
以下是本站小編帶來的全國計算機等級《二級JAVA》命題預測試卷,歡迎學習!更多內容請關注應屆畢業生考試網!1、軟件生命週期是指()。A.軟件產品從提出、實現、使用維護到停止使用退役的過程B.軟件從需求分析、設計、實現到測試完成的過程,C.軟件的開發過程D.軟件...
-
2017上半年計算機二級Java備考練習題及答案
練習做多了自然會形成自己的做題方法和速度,為此,今天本站小編為大家整理了以下2017上半年計算機二級Java備考練習題及答案,希望對大家有幫助!練習題一1、以下不是Java中有效的關鍵字。A、constB、NULLC、falseD、this本題考查的是Java的關鍵字。Java中常量null,fa...
相關文章
- GMAT考試邏輯題練習:What to do when you are stuck
- A Visit to the Flower Show為題目的作文
- What’s your favouritecolour的英語口語
- 定語從句中who和that的用法有什麼區別
- 聖誕節英語詩歌《We Won't Have a Christmas This Year》
- How to Survive an Earthquake為題目的作文
- 八年級Unit 5 What were you doing when the rainstorm came?教學設計
- whats your plan for dragon boat festival英語作文
- S中的ACR究竟是什麼-ACR和Lightroom的區別及優勢介紹
- Java編程中throw和throws子句的使用方法