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

歡迎訪問 生活随笔!

生活随笔

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

java

西安恒智小寨java_Java常用异常整理

發布時間:2024/1/8 java 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 西安恒智小寨java_Java常用异常整理 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

你這么優秀,一定會關注我↑↑↑,對吧~

版權信息|本文原作者“程序猿說你好”,轉載自人云亦云。

整理下Java的常用異常。正確使用異常在實際編碼中非常重要,但面試中的意義相對較小,因為對異常的理解和應用很難通過幾句話或幾行代碼考查出來,不過我們至少應答出三點:異常類的繼承關系、常用異常類、常用異常類的使用場景,下文將圍繞這三點介紹。

異常類的繼承關系

Java中,所有異常都繼承自Throwable類(一個完整可用的類)。整體上分為Error、Exception兩個大類,Exception大類又分為UncheckedException(繼承于RuntimeException)和CheckedException(繼承于Exception,但不繼承于RuntimeException)。

為了幫助理解,我在每個類別下都給出了兩個常用子類,如Error包OutOfMemoryError、AssertionError等;UncheckedException包括NullPointerException、IllegalArgumentException;CheckedException包括IOException、InterruptedException。面試畫異常類的繼承關系時,要求能清楚的說明幾個類別并分類別舉幾個常用的異常類。

常用異常類

下面分類別擴充一下常用的異常類,字典序排序:

需要著重理解的是UncheckedException。

常用異常類的使用場景

常用異常還是有點多,下面分別講解上述三個類別的使用場景,并在每個類別中選一個例子進行講解。

Error

Error通常描述了系統級的錯誤,并且程序猿無法主動處理——當然,系統級錯誤也有可能由代碼間接導致,這不在我們的討論范圍內。發生系統級錯誤的時候,系統環境已經不健康了,因此,Error不強制捕獲或聲明,也就是不強制處理,一般情況下只需要把異常信息記錄下來(如果能記下當時的系統快照更好)。

OutOfMemoryError

當可用內存不足時,會由JVM拋出OutOfMemoryError。一般由三種原因導致:

堆設置過小,不滿足正常的內存需求

代碼中存在內存泄露,占用了大量內存而不能被回收

選擇的GC算法與某些極端的應用場景不匹配,內存碎片過多,沒有足夠大的連續空間分配給對象

JVM拋出OutOfMemoryError前,會嘗試進行一次Full GC,如果GC后可用內存還是不足,才會拋出OutOfMemoryError。因此,這時程序猿必然無法主動處理這一問題,只能等程序崩潰后再去查證原因。

UncheckedException

嚴格來說,Error也可以被劃歸UncheckedException,但我們更習慣用UncheckedException描述運行期發生,通常由于代碼問題直接引起的程序相關的錯誤,并且程序猿無法主動處理。注意區分,系統級錯誤都應該用Error描述。UncheckedException發生的大部分情況是代碼寫挫了,因此,UncheckedException也不強制捕獲或聲明,也就是不強制處理,一般情況下記下日志即可。

不同的是,如果可能,要保證UncheckedException是可控的(在異常被動拋出前檢查并主動拋出)。

NullPointerException

NullPointerException是最常見的UncheckedException。如果在一個空指針上引用方法或變量等,則運行期會拋出NullPointerException。空指針讓程序變的不可控:如果任由空指針在程序運行期隨意傳遞、使用,我們將無法確定程序的行為,也無法確定捕獲NullPointerException時程序所處的狀態。

解決這一問題的方法很簡單:

盡早檢查并主動拋出異常

單獨、提前處理邊界條件

盡量不使用null表示狀態,特別是在集合中

前兩條原則通用于大部分UncheckedException,可參考String#toLowerCase()的例子。第三條原則需要在代碼的健壯與簡潔之間做出權衡,有限保證簡潔清晰,需要健壯再去健壯。

IOException

產生IOException的原因非常多,但很多時候我們并不關心細節原因,因為文件系統是一個不太可控的因素,這時我們可以以IOException為粒度處理;某些需要關心細節的異常情況,則應使用IOException的子類,以分情況處理。

前面總結的FileAlreadyExistsException、FileNotFoundException、UnknownHostException等,都是IOException的子類。這三種異常恰好都是可以處理的。

(版權聲明:推送文章節選自網絡,部分內容除非確實無法確認,我們都已取得授權并注明作者和來源。若涉及版權問題,煩請原作者聯系我們。聯系方式:270834121@qq.com)

END

更多教育類資訊還可關注“恒智集團”

點擊下方“閱讀原文”查看更多成長干貨。多多留言,小編就來勾搭你啦~

總結

以上是生活随笔為你收集整理的西安恒智小寨java_Java常用异常整理的全部內容,希望文章能夠幫你解決所遇到的問題。

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