java中的“異常”

來源:互聯網
上載者:User

標籤:

異常:Java運行期間發生的問題就是異常,另外,Java中運行時發生的除了異常Exception還有錯誤Error。

異常:可以有針對性的處理方式;錯誤:通常發生後不會有針對性的處理方式,往往是系統層級的問題,無法針對處理,只能修正代碼。

舉個例子:對給定的數組同過給定的交表擷取元素,

class Demo{/*對給定的數組通過給定的角標擷取元素。*/int getElement(int[] arr,int index){/*它所提供的資訊不夠給力。想要更清晰,需要自己寫。它的拋出不滿足我們的要求。準備自己拋。*/if(arr==null){throw new NullPointerException("arr指向的數組不存在");}if(index<0 || index>=arr.length){//該條件如果滿足,功能已經無法繼續運算。這時 就必須結束功能,並將問題告知給調用者。這時就需要通過異常來解決。//怎麼用呢?//1,建立一個異常對象。封裝一些提示資訊(自訂)。//2,需要將這個對象告知給調用者。怎麼告知呢?怎麼將這個對象傳遞到調用者處呢?通過關鍵字throw就可以完成。 throw 異常對象;//3,throw用在函數內,拋出異常對象,並可以結束函數。throw new ArrayIndexOutOfBoundsException("錯誤的角標,"+index+"索引在數組中不存在");}
自訂異常:

上邊的Exception中的異常不好認,準備定義一個符合我的程式要求的問題名稱以及問題的資訊,其實異常就是講問題,封裝成了對象。

查閱API發現:

Throwable

|--Error

|--Exception

Throwable是異常和錯誤的父類,自訂異常被拋出,必須是繼承Throwable或者Throwable的子類,該對象才可以被Throw拋出。

聲明和捕獲:

 聲明:將問題標識出來,報告給調用者。
如果函數內通過throw拋出了編譯時間異常,而捕獲,那麼必須通過throws進行聲明,讓調用者去處理。

捕獲:Java中對異常有針對性的語句進行捕獲。
語句:
try
{
//需要被檢測的語句。
}
catch(異常類 變數)//參數。
{
//異常的處理語句。
}
finally
{
//一定會被執行的語句。
}

throw和throws的區別?

1,throw用在函數內。
throws用在函數上。
2,thorw拋出的是異常對象。
throws用於進行異常類的聲明,後面異常類可以有多個,用逗號隔開。

class Demo{void show()throws Exception{throw new Exception();}}class  {public static void main(String[] args) {System.out.println("Hello World!");}}


著作權聲明:本文為博主原創文章,未經博主允許不得轉載。

java中的“異常”

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.