中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Java異常和斷言如何使用

發布時間:2022-05-23 11:31:18 來源:億速云 閱讀:128 作者:zzz 欄目:大數據

這篇文章主要介紹了Java異常和斷言如何使用的相關知識,內容詳細易懂,操作簡單快捷,具有一定借鑒價值,相信大家閱讀完這篇Java異常和斷言如何使用文章都會有所收獲,下面我們一起來看看吧。

Java異常

在Java中,一個異常對象總是Throwable子類的實例。

Error類體系描述了Java運行系統中的內部錯誤以及資源耗盡的情況。

由編程導致的錯誤,會導致RuntimeException異常。而其他錯誤原因導致的異常----例如,因為I/O錯誤導致的曾經運行正確的程序出錯,都不會導致RuntimeException異常。

從RuntimeException衍生出來的異常包括下面的問題:1〉錯誤的類型轉換;2〉數組越界訪問;3〉試圖訪問一個空指針。

不是從RuntimeException衍生出來的異常包括:

1〉試圖從文件尾后面讀取數據;

2〉試圖打開一個錯誤格式的URL;

3〉試圖用一個字符串來構造一個Class對象,而當該字符串對應的類并不存在;

處理RuntimeException的原則是:如果出現RuntimeException,則一定是你的錯誤;

不同的瀏覽器可以處理不同類型的URL,所以,URL格式是否錯誤依賴于具體的環境,而不僅僅是程序代碼;

Java語言規范中將任何Error的子類以及RuntimeException的子類都稱為未檢查異常,而其他的異常則稱為已檢查異常;

僅僅在以下4種情況下,才會拋出異常:

1〉調用了一個會拋出"已檢查異常"的方法,例如BufferReader類的readLine方法;

2〉程序運行過程中發生了錯誤,并且用throw語句拋出一個"已檢查異常";

3〉程序錯誤,例如a[-1]=0會拋出一個"未檢查異常"如數組下標越界(ArrayIndex--OutOfBoundsException);

4〉Java虛擬機或者是運行時庫出現了內部錯誤;

不需要聲明Java的內部錯誤。一個方法必須聲明它可能拋出的全部"已檢查異常"。如果在自己的子類中覆蓋了一個來自父類的方法。特別需要注意的是,如果父類方法根本沒有拋出任何"已檢查異常",則子類也只能如此;

在Java中,沒有throws指示符的方法是不能拋出任何已檢查Java異常的;

對于try/catch代碼塊,如果方法內的任何代碼拋出了一個異常,同時它的類型沒有在catch中指定,則方法會立即退出;

應捕捉并且處理那些已知如何處理的異常(用catch),而傳遞那些不知如何處理的異常(用throws);

對于try/catch/finally代碼塊,無論是否捕獲異常,都會執行finally從句中的代碼;

雖然Java程序員必須在finally從句中人工設置代碼來回收資源,但由于Java內建有"垃圾收集"機制,所以只有極少數的資源才要求人工進行回收;

actionPerformed方法不能拋出任何已檢查異常;

使用Java異常機制的一些技巧:

1〉異常控制不能代替簡單的測試,和執行簡單的測試相比,捕捉異常所需的時間大大超過前者,所以,只有在異常情況下才使用異常;

2〉不要過分細化異常;

3〉不要壓制異常:可以使用如下格式: try { //代碼 } catch (Exception e) { //空 }

4〉不要羞于傳遞異常:對于某些異常(如調用FileInputStream構造器或者readLine方法產生的異常),傳遞它比捕捉它更好。讓高層的方法來通知用戶發生了錯誤或者放棄執行不成功的命令更合適。

Java斷言

默認情況下,Java斷言是關閉的。可通過-ea來打開,用-da來關閉。選項-ea:...會打開默認包中全部類的斷言功能,打開或者關閉斷言是類裝載器的功能;

-da和-ea選項對那些沒有類加載器的"系統類"是不起作用的。對于這些系統類,要使用-enablesystemassertions/-esa選項來打開斷言功能;

Java斷言使用技巧:

1>斷言失敗是致命的,不可恢復的錯誤;

2>斷言檢查僅僅用在程序開發和測試階段;

因此,不應該用斷言作為信號來通知程序的另外部分發生了可恢復錯誤,或者將斷言作為通知程序使用者的方式。Java斷言僅僅應該在測試階段用來定位程序內部錯誤;

Java斷言是在測試和調試階段使用的工具,而日志是在程序整個生命周期中都使用的策略性工具。

下面是think in java中的一段

違例準則

用違例做下面這些事情:

(1) 解決問題并再次調用造成違例的方法。

(2) 平息事態的發展,并在不重新嘗試方法的前提下繼續。

(3) 計算另一些結果,而不是希望方法產生的結果。

(4) 在當前環境中盡可能解決問題,以及將相同的違例重新“擲”出一個更高級的環境。

(5) 在當前環境中盡可能解決問題,以及將不同的違例重新“擲”出一個更高級的環境。

(6) 中止程序執行。

(7) 簡化編碼。若違例方案使事情變得更加復雜,那就會令人非常煩惱,不如不用。

(8) 使自己的庫和程序變得更加安全。這既是一種“短期投資”(便于調試),也是一種“長期投資”(改善應用程序的健壯性)

關于“Java異常和斷言如何使用”這篇文章的內容就介紹到這里,感謝各位的閱讀!相信大家對“Java異常和斷言如何使用”知識都有一定的了解,大家如果還想學習更多知識,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

湖北省| 青田县| 龙山县| 婺源县| 渝中区| 河曲县| 阜南县| 克山县| 晋中市| 汾西县| 玛多县| 高陵县| 旬邑县| 贵溪市| 广平县| 拉萨市| 自贡市| 瑞昌市| 革吉县| 方城县| 叶城县| 浦城县| 隆林| 庐江县| 会东县| 玉田县| 慈利县| 台中县| 武邑县| 宁津县| 临湘市| 邵阳县| 宁国市| 铁岭市| 阿拉善左旗| 鄂州市| 古田县| 外汇| 长武县| 大方县| 台安县|