當前位置:首頁 » 編程語言 » java主動拋異常

java主動拋異常

發布時間: 2022-06-19 06:45:12

java的try catch語句在循環里執行時拋出異常,還繼續循環嗎

  1. 如果異常發生的位置在try代碼塊里,那麼如果在catch里,沒有主動拋出異常,並且catch的代碼沒有發生異常,循環繼續。

  2. 總之,循環是否中斷,看 代碼是否自己將異常處理了,如果程序處理了,不拋給 JVM,那麼循環就不會終止,另外要注意自己的catch代碼塊是否也可能出現異常。

  3. 語句會拋出你自定義的異常,這種異常程序要求必須try----catch處理或者聲明拋出異常。

  4. throwsXXException(自定義異常)想要重試還是異常就終止的話,需要聲明拋出異常,也就是告訴虛擬機,如果此時再次拋出異常,則直接拋給調用者,如果調用者沒有對該異常進行處理,那麼程序會彈出提示異常關閉。

Ⅱ java 拋出異常機制的一個小問題

這是處理異常的方式不同。直接在類上用throw,表示發生異常本類之內不做任何處理,直接把這個異常往外拋;而try-catch則是主動捕獲這個異常,一旦發生就進行相應的處理。
一般在正式工作當中,項目里不會用throw去處理異常,那樣太不負責任了。基本都是通過try-catch方式捕獲,然後進行異常的處理。

Ⅲ java中 方法中拋出異常處理方法

Java語言提供兩種異常處理機制:捕獲異常和聲明拋棄異常。

1、捕獲異常:

(1)在Java程序運行過程中系統得到一個異常對象是,它將會沿著方法的調用棧逐層回溯,尋找處理這一異常的代碼。

(2)找到能夠處理這種類型異常的方法後,運行時系統把當前異常交給這個方法處理;如果找不到可以捕獲異常的方法,則運行時系統將終止,相應的Java程序也將退出。

(3)捕獲異常是通過try-catch-finally語句實現的。語法為:

try{

...

}catch(ExceptionName1 e){

...

}catch(ExceptionName2 e){

...

}

...

}finally{

...

}

2、聲明拋棄異常:

(1)當Java程序運行時系統得到一個異常對象時,如果一個方法並不知道如何處理所出現的異常,則可在方法聲明時,聲明拋棄異常。

(2)聲明拋棄異常是在一個方法聲明中的throws子句中指明的。如:

public int read() throws IOException{

...

}

其中throws IOException就是聲明拋棄異常,throws後可以跟多個異常類型。

(3)java主動拋異常擴展閱讀:

程序設計語言的異常機制:

1、多數語言的異常機制的語法是類似的:用throw或raise拋出一個異常對象(Java或C++等)或一個特殊可擴展的枚舉類型的值(如Ada語言);

2、異常處理代碼的作用范圍用標記子句(try或begin開始的語言作用域)標示其起始,以第一個異常處理子句(catch, except, resuce等)標示其結束;可連續出現若干個異常處理子句,每個處理特定類型的異常。

3、某些語言允許else子句,用於無異常出現的情況。更多見的是finally, ensure子句,無論是否出現異常它都將執行,用於釋放異常處理所需的一些資源。

(1)C++異常處理是資源獲取即初始化(Resource-Acquisition-Is-Initialization)的基礎。

(2)C語言一般認為是不支持異常處理的。Perl語言可選擇支持結構化異常處理(structured exception handling)。

(3)Python語言對異常處理機制是非常普遍深入的,所以想寫出不含try, except的程序非常困難。

參考資料來源:

網路-異常處理

Ⅳ java中怎麼拋異常和接收異常

拋出異常 就是使用 throw關鍵字 除了拋出常見的默認異常外,主要是用於拋出自定義異常,關於自定義異常就是繼承了Exception類的子類接受異常是指捕獲異常嗎,似乎沒有聽說過接受異常這種說法,捕獲異常的話主要是用 try{} catch(){} finally{} 結構try {}數據塊中 是預期可能出現異常的代碼catch 的 attribute 是指定希望捕獲的異常,比如catch(NullPointerException e )就是只測試並捕獲空指針異常,再如catch(Exception e) 就可以捕獲所有繼承了Exception的子類,{}則是捕獲該異常後的處理代碼,比如輸出錯誤信息,etc 實際應用中可以有多個catch 用來區分不同的異常然後運行不同的代碼進行處理finally{}則是無論是否捕獲異常,該代碼都會執行 希望對你有幫助

Ⅳ JAVA如何拋出異常

如果你知道你寫的某個函數有可能拋出異常,而你又不想在這個函數中對異常進行處理,只是想把它拋出去讓調用這個函數的上級調用函數進行處理,那麼有兩種方式可供選擇:

第一種方式:直接在函數頭中throws SomeException,函數體中不需要try/catch。比如將最開始的例子中的testEx2改為下面的方式,那麼testEx1就能捕捉到testEx2拋出的異常了。
boolean testEx2() throws Exception{
boolean ret = true;
int b=12;
int c;
for (int i=2;i>=-2;i--){
c=b/i;
System.out.println("i="+i);
}
return true;
}
第二種方式:使用try/catch,在catch中進行一定的處理之後(如果有必要的話)拋出某種異常。例如上面的testEx2改為下面的方式,testEx1也能捕獲到它拋出的異常:
boolean testEx2() throws Exception{
boolean ret = true;
try{
int b=12;
int c;
for (int i=2;i>=-2;i--){
c=b/i;
System.out.println("i="+i);
}
return true;
}catch (Exception e){
System.out.println("testEx2, catch exception");
Throw e;
}
}
第三種方法:使用try/catch/finally,在catch中進行一定的處理之後(如果有必要的話)拋出某種異常。例如上面的testEx2改為下面的方式,testEx1也能捕獲到它拋出的異常:
boolean testEx2() throws Exception{
boolean ret = true;
try{
int b=12;
int c;
for (int i=2;i>=-2;i--){
c=b/i;
System.out.println("i="+i);
throw new Exception("aaa");
}
return true;
}catch (java.lang.ArithmeticException e){
System.out.println("testEx2, catch exception");
ret = false;
throw new Exception("aaa");
}finally{
System.out.println("testEx2, finally; return value="+ret);
}

}

Ⅵ JAVA 什麼是拋異常什麼情況下用拋異常

」拋異常」簡單的說就是出現一些意想不到的情況時的處理方法,舉個例子,當做一個加法時,如果你輸入的不是數字,就會異常,這個時候如果你沒在程序里作異常處理,出錯信息就會很煩,普通用戶看不懂,加上異常處理,也就是」拋異常」後,可以自己定義出錯信息.
當有可能出現異常錯誤時」拋出異常」

Ⅶ java拋出異常在哪裡處理

如果不拋出異常則是在catch塊里,拋出則由調用方法的類處理。
為了避免調用的人不知道有異常,才拋出異常的,所以是誰掉用的久在哪裡處理。說的對嗎
對.
1、throws關鍵字通常被應用在聲明方法時,用來指定可能拋出的異常。多個異常可以使用逗號隔開。當在主函數中調用該方法時,如果發生異常,就會將異常拋給指定異常對象。如下面例子所示:
public
class
Shoot
{
創建類
static
void
pop()
throws
NegativeArraySizeException
{
//定義方法並拋出NegativeArraySizeException異常
int
[]
arr
=
new
int[-3];//創建數組
}
public
static
void
main(String[]
args)
{//主方法
try
{
pop();
//調用pop()方法
}
catch
(NegativeArraySizeException
e)
{
System.out.println("pop()方法拋出的異常");//輸出異常信息
}
}
}
2、throw關鍵字通常用在方法體中,並且拋出一個異常對象。程序在執行到throw語句時立即停止,它後面的語句都不執行。通過throw拋出異常後,如果想在上一級代碼中來捕獲並處理異常,則需要在拋出異常的方法中使用throws關鍵字在方法聲明中指明要跑出的異常;如果要捕捉throw拋出的異常,則必須使用try—catch語句。舉例如下:
class
MyException
extends
Exception
{
//創建自定義異常類
String
message;
//定義String類型變數
public
MyException(String
ErrorMessagr)
{
//父類方法
message
=
ErrorMessagr;
}
public
String
getMessage(){
//覆蓋getMessage()方法
return
message;
}
}
public
class
Captor
{
//創建類
static
int
quotient(int
x,int
y)
throws
MyException{//定義方法拋出異常
if(y
<
0){
//判斷參數是否小於0
throw
new
MyException("除數不能是負數");//異常信息
}
return
x/y;//返回值
}
public
static
void
main(String
args[]){
//主方法
try{
//try語句包含可能發生異常的語句
int
result
=
quotient(3,-1);//調用方法quotient()
}catch
(MyException
e)
{
//處理自定義異常
System.out.println(e.getMessage());
//輸出異常信息
}
catch
(ArithmeticException
e)
{
//處理ArithmeticException異常
System.out.println("除數不能為0");//輸出提示信息
}
catch
(Exception
e)
{
//處理其他異常
System.out.println("程序發生了其他的異常");
//輸出提示信息
}
}
}

熱點內容
eclipse編程 發布:2025-02-06 10:02:21 瀏覽:636
開源庫編譯管理員 發布:2025-02-06 09:39:14 瀏覽:914
臉書怎麼注冊安卓 發布:2025-02-06 09:36:47 瀏覽:381
車用安卓導航無線打不開什麼原因 發布:2025-02-06 09:27:50 瀏覽:790
安卓與蘋果如何互相傳送文件 發布:2025-02-06 09:27:40 瀏覽:26
華為伺服器盤符如何分配 發布:2025-02-06 09:26:41 瀏覽:560
傳奇h5源碼下載 發布:2025-02-06 09:26:06 瀏覽:78
編譯uclibc 發布:2025-02-06 09:09:04 瀏覽:152
用gcc編譯16位匯編 發布:2025-02-06 09:06:07 瀏覽:823
什麼低端安卓手機不卡 發布:2025-02-06 09:03:32 瀏覽:14