日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

Java异常分类及处理

發布時間:2023/12/10 java 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java异常分类及处理 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、概念

如果某個方法不能按照正常的途徑完成任務,就可以通過另一種路徑退出方法。在這種情況下
會拋出一個封裝了錯誤信息的對象。此時,這個方法會立刻退出同時不返回任何值。另外,調用
這個方法的其他代碼也無法繼續執行,異常處理機制會將代碼執行交給異常處理器。

二、異常分類

Throwable 是 Java 語言中所有錯誤或異常的超類,在 Java 中只有 Throwable 類型的實例才可以被拋出(throw)或者捕獲(catch),它是異常處理機制的基本組成類型。
實例分為 Error 和 Exception 兩種。

2.1、Error

Error 類是指 java 運行時系統的內部錯誤和資源耗盡錯誤。應用程序不會拋出該類對象。如果
出現了這樣的錯誤,除了告知用戶,剩下的就是盡力使程序安全的終止。

2.2、Exception

Exception 又有兩個分支 , 一個是運行時異常 RuntimeException , 一 個是檢查異常 CheckedException。

RuntimeException 如 :NullPointerException 、 ClassCastException ;
CheckedException 如: I/O 錯誤導致的 IOException、SQLException。

RuntimeException 是那些可能在 Java 虛擬機正常運行期間拋出的異常的超類。 如果出現 RuntimeException,那么一
定是程序員代碼書寫導致的錯誤.

CheckedException:一般是外部錯誤,這種異常都發生在編譯階段,Java 編譯器會強
制程序去捕獲此類異常,即會出現要求你把這段可能出現異常的程序進行 try catch,該類異常一
般包括幾個方面:

  • 試圖在文件尾部讀取數據
  • 試圖打開一個錯誤格式的 URL
  • 試圖根據給定的字符串查找 class 對象,而這個字符串表示的類并不存在
  • 三、異常的處理方式

    3.1、不處理

    遇到異常問題不進行具體處理,而是繼續拋給調用者 (throw,throws)
    拋出異常有三種形式,一是 throw,再就是 throws,還有一種系統自動拋異常。

    public static void main(String[] args) {String s = "abc";if(s.equals("abc")) {// 手動拋出一個數字格式化異常throw new NumberFormatException();} else {System.out.println(s);} }int div(int a,int b) throws Exception{return a/b; }
    3.2、處理

    try catch 捕獲異常針對性處理方式

    ####四、Throw 和 throws 的區別

    throws 用在函數上,后面跟的是異常類,可以跟多個;

    語法:(修飾符)(方法名)([參數列表])[throws(異常類)]{…}
    public void doA(int a) throws Exception1,Exception3{…}

    throw 用在函數內,后面跟的是異常對象。

    throws E1,E2,E3只是告訴程序這個方法可能會拋出這些異常,方法的調用者可能要處理這些異常,而這些異常E1,E2,E3可能是該函數體產生的。
    throw則是明確了這個地方要拋出這個異常。

    結合來看:

    void doA(int a) throws IOException,{try{......}catch(Exception1 e){throw e;}catch(Exception2 e){System.out.println("出錯了!");}if(a!=b)throw new Exception3("自定義異常"); }

    throws 用來聲明異常,讓調用者知道該功能可能會出現的問題(比如上方的 IO 異常),可以給出預先的處理方式;
    throw 拋出具體的問題對象,執行到 throw,功能就已經結束了,跳轉到調用者,并將具體的問題對象拋給調用者。
    也就是說 throw 語句獨立存在時,下面不要定義其他語句,因為執行不到。

    概括:
    throws 表示出現異常的一種可能性,并不一定會發生這些異常;
    throw 則是拋出了異常,執行 throw 則一定拋出了某種異常對象。

    五、總結

    了解 Exception、Error 兩種異常的區別,面試可能會問。
    區分 throws、throw使用維度。

    如果文章有錯的地方歡迎指正,大家互相留言交流。習慣在微信看技術文章,想要獲取更多的Java資源的同學,可以關注微信公眾號:niceyoo

    總結

    以上是生活随笔為你收集整理的Java异常分类及处理的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。