• <em id="6vhwh"><rt id="6vhwh"></rt></em>

    <style id="6vhwh"></style>

    <style id="6vhwh"></style>
    1. <style id="6vhwh"></style>
        <sub id="6vhwh"><p id="6vhwh"></p></sub>
        <p id="6vhwh"></p>
          1. 国产亚洲欧洲av综合一区二区三区 ,色爱综合另类图片av,亚洲av免费成人在线,久久热在线视频精品视频,成在人线av无码免费,国产精品一区二区久久毛片,亚洲精品成人片在线观看精品字幕 ,久久亚洲精品成人av秋霞

            illegalargument

            更新時(shí)間:2023-03-02 11:26:16 閱讀: 評(píng)論:0

            java異常處理高級(jí)技巧

            什么是Java異常?

            當(dāng)Java程序的正常行為被意外行為中斷時(shí),會(huì)發(fā)生故障。這種故障被稱為異常。例如,程序嘗試打開(kāi)文件以讀取其內(nèi)容,但該文件不存在將產(chǎn)生異常。Java將異常分為幾種類型,所以讓我們考慮每一種類型。

            檢查異常

            Java將(例如FileNotFoundException, IOException)引起的異常分類為已檢查的異常。Java編譯器會(huì)檢查這些異常,并且在異常發(fā)生的位置要求進(jìn)行捕獲處理或者向上拋出(throws)。需要注意的是檢查異常屬于編譯器的行為,要求你必須在代碼中捕獲或向上拋出(throws)。

            運(yùn)行時(shí)(非檢查)異常

            例如程序進(jìn)行強(qiáng)制轉(zhuǎn)換(cast),這種可能存在轉(zhuǎn)換失敗的異常就是另一種異常。即運(yùn)行時(shí)異常(RuntimeException)。和檢查不同,編譯器不會(huì)檢查你在代碼中是否進(jìn)行處理或拋出。運(yùn)行時(shí)異常通常來(lái)自編寫(xiě)的不良代碼,因此應(yīng)由程序員修復(fù)。

            錯(cuò)誤(Error)

            指一些非常嚴(yán)重,通常無(wú)法進(jìn)行修正必須要重啟程序的異常。例如, 嘗試從JVM分配內(nèi)存,但沒(méi)有足夠的可用內(nèi)存來(lái)滿足請(qǐng)求(OutOfMemoryError)。運(yùn)行時(shí)嘗試調(diào)用加載類文件但類文件但無(wú)法找到時(shí)(NoClassDefFoundError)。對(duì)于錯(cuò)誤您永遠(yuǎn)不應(yīng)該嘗試捕獲并自己處理錯(cuò)誤,因?yàn)镴VM可能已經(jīng)無(wú)法從中恢復(fù)正常。

            Throwable及其子類

            Java提供了表示不同類型異常的類層次結(jié)構(gòu)。java.lang包的Throwable類是所有異常類的超類。

            注意:通常您不應(yīng)該以任何方式捕獲和處理Throwable。

            Exception類

            Throwable有兩個(gè)直接的子類。其中一個(gè)子類是Exception。Java提供了許多直接子類的異常類Exception。比如:

            SQLException 表示發(fā)生了jdbc異常,來(lái)自java.sql包中IOException 表示發(fā)生了I/O異常,來(lái)自java.io包中

            注意,每個(gè)Exception子類名稱都以Exception單詞結(jié)尾。該約定使得易于識(shí)別該類異常。

            您可能想自定義使用自己的Exception檢查異常。下面自定義示例:

            Error類

            Throwable另一個(gè)直接的子類是Error,描述了一個(gè)合理的應(yīng)用程序不應(yīng)該嘗試處理的嚴(yán)重問(wèn)題 - 例如內(nèi)存不足溢出,棧溢出,或者嘗試加載無(wú)法找到的類。例如:

            OutOfMemoryError 內(nèi)存溢出StackOverflowError 棧溢出NoClassDefFoundError 嘗試加載無(wú)法找到的類時(shí)觸發(fā)

            注意:通常您不應(yīng)該以任何方式捕獲和處理Error類異常。

            RuntimeException類

            RuntimeException異常或其子類實(shí)例化是未經(jīng)檢查的異常。直接父類是Exception。RuntimeException和其分類Exception 聲明相同的構(gòu)造函數(shù)(具有相同的參數(shù)列表)。它通常表示一個(gè)可能由不良代碼引起的運(yùn)行時(shí)異常。下面是它的一些示例:

            NullPointerException 空指針異常,java最常見(jiàn)異常。過(guò)多的該異常通常意味您需要提高代碼編寫(xiě)技巧。IllegalArgumentException 驗(yàn)證異常,通常表示參數(shù)非法或不正確的狀態(tài)。ClassCastException 類型轉(zhuǎn)換異常

            NullPointerException異常優(yōu)化:

            嘗試使用java.util.Optional<T>作為方法返回值,使用Optional.empty()取代return null;使用將字符串放在前面 "str".equals(arg)做好方法或構(gòu)造函數(shù)的入?yún)z查。this.args = Objects.requireNonNull(inArgs, "inArgs is null");返回空集合而不是null。return new String[0] or return Collections.emptyMap()方法入?yún)⒑头祷厥褂?long,int 而非包裝類 Intger,Long

            異常拋出

            C語(yǔ)言通常return全局錯(cuò)誤變量來(lái)通常調(diào)用者。而java則使用拋出異常對(duì)象來(lái)通知調(diào)用者。了解如何以及何時(shí)拋出異常是Java編程一個(gè)非常重要技能。通常您只拋出Exception或RuntimeException的子類實(shí)例化的對(duì)象。拋出異常有兩個(gè)步驟。

            使用throw new 異常語(yǔ)句拋出異常對(duì)象。在方法上使用throws 異常語(yǔ)句告知編譯器(對(duì)于檢查異常這是必須的)。

            throw拋出異常:

            異常拋出是指將異常對(duì)象從當(dāng)前方法拋出到JVM。然后JVM會(huì)在異常表中查找合適異常處理邏輯(catch)。如何沒(méi)有找到則JVM會(huì)退出當(dāng)前方法的調(diào)用棧,從上級(jí)調(diào)用者(方法)的異常表中繼續(xù)尋找。如果找到它將使用該處理代碼進(jìn)行處理異常。如果JVM最后在main()方法的異常表中依然沒(méi)有找到合適處理邏輯(catch)那么JVM將會(huì)發(fā)出消息-1然后退出。

            注意: 異常處理通常非常昂貴,您不該在任何時(shí)候使用異常處理邏輯來(lái)處理您的正常業(yè)務(wù)

            throws告知編譯器:

            從方法中拋出檢查異常時(shí),需要在方法上添加拋出標(biāo)志來(lái)通知編譯器。

            總結(jié)

            該篇文檔總結(jié)java異常的分類和各自的特點(diǎn)。下面是一些關(guān)鍵點(diǎn)總結(jié):

            強(qiáng)制你處理或拋出檢查異常屬于編譯器的行為,對(duì)于它編譯器要求你必須在代碼中捕獲或向上拋出(throws)。永遠(yuǎn)不要試圖catch Error錯(cuò)誤嘗試捕獲并自己處理錯(cuò)誤,因?yàn)镴VM可能已經(jīng)無(wú)法從中恢復(fù)正常。永遠(yuǎn)不要以任何方式直接catch捕獲和處理Throwable, 因?yàn)镋rror是它子類。異常處理通常代價(jià)非常昂貴,不要試圖用來(lái)處理您的正常業(yè)務(wù)。過(guò)多的NullPointerException異常意味著你需要提高代碼編寫(xiě)技巧。

            本文發(fā)布于:2023-02-28 21:07:00,感謝您對(duì)本站的認(rèn)可!

            本文鏈接:http://m.newhan.cn/zhishi/a/167772757699886.html

            版權(quán)聲明:本站內(nèi)容均來(lái)自互聯(lián)網(wǎng),僅供演示用,請(qǐng)勿用于商業(yè)和其他非法用途。如果侵犯了您的權(quán)益請(qǐng)與我們聯(lián)系,我們將在24小時(shí)內(nèi)刪除。

            本文word下載地址:illegalargument.doc

            本文 PDF 下載地址:illegalargument.pdf

            標(biāo)簽:illegalargument
            相關(guān)文章
            留言與評(píng)論(共有 0 條評(píng)論)
               
            驗(yàn)證碼:
            Copyright ?2019-2022 Comsenz Inc.Powered by ? 實(shí)用文體寫(xiě)作網(wǎng)旗下知識(shí)大全大全欄目是一個(gè)全百科類寶庫(kù)! 優(yōu)秀范文|法律文書(shū)|專利查詢|
            主站蜘蛛池模板: 2021国产精品视频网站| 在线 欧美 中文 亚洲 精品| 99精品人妻少妇一区二区| 97se亚洲综合自在线| 国产一区二区在线视频播放| 综合亚洲网| 99久久久无码国产精品免费| 国产精品-区区久久久狼| 呦女亚洲一区精品| 一区二区三区午夜无码视频| 亚洲中文字幕国产综合| 久久精品免视看国产成人| 丝袜国产一区av在线观看| 亚洲欧美国产精品久久| 免费国产一级特黄aa大片在线| 99久久精品国产一区二区| 国产一区二区三区av在线无码观看| 久久精品亚洲热综合一区二区| 最新精品露脸国产在线| 中文字幕最新精品资源| 亚洲av成人网在线观看| 国产成人一区二区不卡| 综合欧美视频一区二区三区| 漂亮人妻被中出中文字幕久久| 日本一区二区三区激情视频 | 国产人妖cd在线看网站| 成人av一区二区三区| 成人激情视频一区二区三区 | 亚洲va成无码人在线观看天堂| 国产情精品嫩草影院88av| 久久caoporn国产免费| 国产91丝袜在线播放动漫| 亚洲精品美女一区二区| 国产男女猛烈无遮挡免费视频网址| 亚洲一区在线观看青青蜜臀| 亚洲国产福利成人一区二区| 国产女人看国产在线女人| 亚洲伊人情人综合网站| 日韩一本不卡一区二区三区| A毛片终身免费观看网站| 中文字幕日韩国产精品|