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

歡迎訪問 生活随笔!

生活随笔

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

java

java 异常 抛 效率_一文带你理清Java异常体系,提高开发效率

發布時間:2023/12/19 java 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java 异常 抛 效率_一文带你理清Java异常体系,提高开发效率 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、概述

我們在項目開發的過程中使用異常是必不可少的事情,那么異常會帶來哪些好處呢?

我們知道異常帶來的最明顯的好處是,它能夠降低錯誤處理代碼的復雜度。不使用異常的話,我們就必須檢查一些特定的錯誤,并且在程序中許多地方都要去處理它。而當我們使用異常的時候,就不需要在方法的調用處進行檢查,因為異常機制能夠捕獲到這個錯誤信息。然后我們只需要在一個地方處理這個錯誤。這種處理方式不僅能節省代碼量,而且還能把“描述在正常執行過程中做什么事”的代碼(try)和“出了問題怎么辦”的代碼(catch)之前進行分離。

總之,與之前處理錯誤的方法相比較,異常機制讓代碼可讀性更強,使編碼更有條理性,調試更加有序。

在程序員的開發過程中,由于程序員沒有考慮的十分周全,或者遺漏掉某些特定的場景,而會產生一系列的bug,如系統中存在的臟數據、打開并不存在的文件、進行相除運算分母為0等情況。為了能夠處理這些在程序運行過程中出現的錯誤,Java專門引入了異常類。

二、異常產生的原因及使用原則

異常產生的原因主要有三種情況,詳情如下:

1、Java內部錯誤發生異常(Java虛擬機發生了內部錯誤)。

2、編寫的程序代碼中產生的異常,例如空指針異常、類找不到異常、IO異常以及數組越界異常等。這種異常稱為未檢査的異常,一般需要在代碼里面處理這些異常。

3、通過throw語句拋出的異常,這種異常稱為檢査的異常,一般用來告知該方法的調用者一些必要的信息。

Java是通過面向對象的方式來處理異常的。在該方法的運行過程中,一旦發生了異常,則該方法就會產生一個代表該異常的對象,并且把它交給運行時的系統,運行時系統尋找相應的代碼來處理這一異常。

我們把生成的異常對象提交給運行時系統的過程稱為拋出異常即throw。運行時系統在方法的調用棧中查找,一直到能夠找到處理該類型異常對象的時候,這一個過程稱為捕獲異常即catch。

Java異常會強制要求用戶去考慮程序的強健性以及安全性。如果將異常處理應用來控制程序的正常流程是不合理的,他的主要作用就是為了捕獲程序運行過程中發生的異常并進行相應處理。本文來源于公眾號:【Java學習提升】 專注于Java領域技術分享,Java知識體系學習、分享面試經驗,讓我們結伴而行,共同成長!

我們編寫代碼處理某個方法可能出現的異常,應該遵循以下三個原則:

1、在可能出現異常的方法中使用try catch語句來捕獲異常。

2、如果一個方法被覆蓋時,那么覆蓋它的方法必須拋出相同的異常或異常的子類。

3、如果父類拋出多個異常時,那么覆蓋方法必須拋出那些異常的一個子集,而不能拋出新的異常。

三、Java中常見的異常類型及體系結構圖

異常體系結構圖:

Java的異常主要分為兩大類:

1、Checked異常

是編譯器在編譯時進行校驗的,通過throws語句或者try{}cathch{} 語句塊來處理檢測異常。編譯器會分析哪些異常會在執行一個方法或者構造函數的時候拋出。

2、Unchecked異常(運行時異常RuntimeException)

這種異常不需要編譯器來檢測。RuntimeException是所有可以在運行時拋出的異常的父類。一個方法除了要捕獲異常外,如果它執行的時候可能會拋出RuntimeException的子類,那么它就不需要用throw語句來聲明拋出的異常。

舉個栗子,我們來看下面的這段代碼:

程序并沒有報錯,但是我們都知道0是不能當做被除數的,當我們運行的時候會報如下的錯

針對這樣的情況我們該如何處理呢,正確的處理方式是捕獲這個異常并處理,處理結果如下:

我們來運行這段代碼,結果如下:

類似像上面程序中出現的異常情況,就叫運行異常。運行異常一般都可以正常運行,只有在特定的場景下會發生異常。只要我們對運行異常類有一個清晰的認識,就能解決大多數程序上面的問題了。

原創聲明:本文為【Java學習提升】原創博文,轉載請注明出處。

本文來源于公眾號:【Java學習提升】 專注于Java領域技術分享,Java知識體系學習、分享面試經驗,讓我們結伴而行,共同成長!

總結

以上是生活随笔為你收集整理的java 异常 抛 效率_一文带你理清Java异常体系,提高开发效率的全部內容,希望文章能夠幫你解決所遇到的問題。

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