本文目錄一覽:
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後可以跟多個異常類型。
擴展資料:
程序設計語言的異常機制:
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如何拋出異常
首先如果拋出jdk已有的異常,比如說拋出一個空指針異常,就這樣:
throw new NullPointerException();這算拋出了一個空指針異常
throw new NullPointerException(“也可以在這裡加一些異常信息描述”);
然後如果你想拋出一個自己定義好的異常,那麼首先要聲明一個異常類,
然後拋出的方法一樣。
java提供給程序主動拋出異常的語句
直接throws Exception 寫在你的方法或者類名後
或者用try catch
在 Java 應用程序中,異常處理機製為:拋出異常,捕捉異常。
拋出異常:當一個方法出現錯誤引發異常時,方法創建異常對象並交付運行時系統,異常對象中包含了異常類型和異常出現時的程序狀態等異常信息。運行時系統負責尋找處置異常的代碼並執行。
捕獲異常:在方法拋出異常之後,運行時系統將轉為尋找合適的異常處理器(exception handler)。潛在的異常處理器是異常發生時依次存留在調用棧中的方法的集合。當異常處理器所能處理的異常類型與方法拋出的異常類型相符時,即為合適 的異常處理器。運行時系統從發生異常的方法開始,依次回查調用棧中的方法,直至找到含有合適異常處理器的方法並執行。當運行時系統遍歷調用棧而未找到合適 的異常處理器,則運行時系統終止。同時,意味着Java程序的終止。
對於運行時異常、錯誤或可查異常,Java技術所要求的異常處理方式有所不同。
由於運行時異常的不可查性,為了更合理、更容易地實現應用程序,Java規定,運行時異常將由Java運行時系統自動拋出,允許應用程序忽略運行時異常。
對於方法運行中可能出現的Error,當運行方法不欲捕捉時,Java允許該方法不做任何拋出聲明。因為,大多數Error異常屬於永遠不能被允許發生的狀況,也屬於合理的應用程序不該捕捉的異常。
Java 由方法拋出異常
Java中異常可以通過throws關鍵字直接拋出異常,示例如下:
public class A**Exception
{
private String id;
public void setID(String id)
{
if(id.length() == 7)
{
this.id = id;
}else
{
throw new IllegalArgumentException(“參數長度不是7位”);
}
}
}
以上代碼,拋出了一個IllegalArgumentException類型的異常。
還有一種系統異常,只需要捕捉顯示即可,使用try/catch關鍵字。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/289244.html