<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    閑人野居
    好好學(xué)習(xí),天天向上
    posts - 57,  comments - 137,  trackbacks - 0
    ??? 在java中,類裝載異常雖然不是很常見,可如果發(fā)生異常,其處理還是比較麻煩的。
    ??? 下面的幾種異常是比較常見的:
    ClassNotFoundException
    ??? ClassNotFoundException 是最常見的類裝入異常類型。它發(fā)生在裝入階段。Java 規(guī)范對(duì) ClassNotFoundException 的描述是這樣的:
    ??? 當(dāng)應(yīng)用程序試圖通過(guò)類的字符串名稱,使用以下三種方法裝入類,但卻找不到指定名稱的類定義時(shí)拋出該異常。
    ??? * 類 Class 中的 forName() 方法。
    ??? * 類 ClassLoader 中的 findSystemClass() 方法。
    ??? * 類 ClassLoader 中的 loadClass() 方法。
    ??? 所以,如果顯式地裝入類的嘗試失敗,那么就拋出 ClassNotFoundException。
    ??? 這些異常修復(fù)起來(lái)通常比較簡(jiǎn)單??梢杂? verbose 選項(xiàng)檢查類路徑,確保使用的類路徑設(shè)置正確。如果類路徑設(shè)置正確,但是仍然看到這個(gè)錯(cuò)誤,那么就是需要的類在類路徑中不存在。要修復(fù)這個(gè)問題,可以把類移動(dòng)到類路徑中指定的目錄或 JAR 文件中,或者把類所在的位置添加到類路徑中。

    NoClassDefFoundError
    ??? NoClassDefFoundError 是類裝入器在裝入階段拋出的另一個(gè)常見異常。JVM 規(guī)范對(duì) NoClassDefFoundError 的定義如下:
    ??? 如果 Java 虛擬機(jī)或 ClassLoader 實(shí)例試圖裝入類定義(作為正常的方法調(diào)用的一部分,或者作為使用 new 表達(dá)式創(chuàng)建新實(shí)例的一部分),但卻沒有找到類定義時(shí)拋出該異常。
    ??? 當(dāng)目前執(zhí)行的類已經(jīng)編譯,但是找不到它的定義時(shí),會(huì)存在 searched-for 類定義。
    ??? 實(shí)際上,這意味著 NoClassDefFoundError 的拋出,是不成功的隱式類裝入的結(jié)果。
    ??? 簡(jiǎn)單說(shuō)來(lái),就是引用的類在類路徑中沒有找到。
    ClassCastException
    ??? 類裝入器能夠拋出的另一個(gè)異常是 ClassCastException。它是在類型比較中發(fā)現(xiàn)不兼容類型的時(shí)候拋出的。JVM 規(guī)范指定 ClassCastException 是:
    ??? 該異常的拋出,表明代碼企圖把對(duì)象的類型轉(zhuǎn)換成一個(gè)子類,而該對(duì)象并不是這個(gè)子類的實(shí)例。
    UnsatisfiedLinkError
    ??? 在把本地方法調(diào)用鏈接到對(duì)應(yīng)的本機(jī)定義時(shí),類裝入器扮演著重要角色。如果程序試圖裝入一個(gè)不存在或者放錯(cuò)的本機(jī)庫(kù)時(shí),在鏈接階段的解析過(guò)程會(huì)發(fā)生 UnsatisfiedLinkError。JVM 規(guī)范指定 UnsatisfiedLinkError 是:
    ??? 對(duì)于聲明為 native 的方法,如果 Java 虛擬機(jī)找不到和它對(duì)應(yīng)的本機(jī)語(yǔ)言定義,就會(huì)拋出該異常。
    ??? 當(dāng)調(diào)用本機(jī)方法時(shí),類裝入器會(huì)嘗試裝入定義了該方法的本機(jī)庫(kù)。如果找不到這個(gè)庫(kù),就會(huì)拋出這個(gè)錯(cuò)誤。
    ??? 本機(jī)庫(kù)的裝入由調(diào)用 System.loadLibrary() 方法的類的類裝入器啟動(dòng) ,根據(jù)使用的類裝入器,會(huì)搜索不同的位置:
    ??? * 對(duì)于由 bootstrap 類裝入器裝入的類,搜索 sun.boot.library.path。
    ??? * 對(duì)于由擴(kuò)展類裝入器裝入的類,先搜索 java.ext.dirs,然后是 sun.boot.library.path,然后是 java.library.path。
    ??? * 對(duì)于由系統(tǒng)類裝入器裝入的類,搜索 sun.boot.library.path,然后是 java.library.path。
    ClassCircularityError
    ??? JVM 規(guī)范指定 ClassCircularityError 的拋出條件是:
    ??? 類或接口由于是自己的超類或超接口而不能被裝入。
    ??? 這個(gè)錯(cuò)誤是在鏈接階段的解析過(guò)程中拋出的。這個(gè)錯(cuò)誤有點(diǎn)奇怪,因?yàn)?Java 編譯器不允許發(fā)生這種循環(huán)情況。但是,如果獨(dú)立地編譯類,然后再把它們放在一起,就可能發(fā)生這個(gè)錯(cuò)誤。
    ClassFormatError
    JVM 規(guī)范指出,拋出 ClassFormatError 的條件是:
    ??? 負(fù)責(zé)指定所請(qǐng)求的編譯類或接口的二進(jìn)制數(shù)據(jù)形式有誤。
    ??? 這個(gè)異常是在類裝入的鏈接階段的校驗(yàn)過(guò)程中拋出。如果字節(jié)碼發(fā)生了更改,例如主版本號(hào)或次版本號(hào)發(fā)生了更改,那么二進(jìn)制數(shù)據(jù)的形式就會(huì)有誤。例如,如果對(duì)字節(jié)碼故意做了更改,或者在通過(guò)網(wǎng)絡(luò)傳送類文件時(shí)現(xiàn)出了錯(cuò)誤,那么就可能發(fā)生這個(gè)異常。
    ??? 修復(fù)這個(gè)問題的惟一方法就是獲得字節(jié)碼的正確副本,可能需要重新進(jìn)行編譯。
    ExceptionInInitializerError
    根據(jù) JVM 規(guī)范,拋出 ExceptionInInitializer 的情況是:
    ??? * 如果初始化器突然完成,拋出一些異常 E,而且 E 的類不是 Error 或者它的某個(gè)子類,那么就會(huì)創(chuàng)建 ExceptionInInitializerError 類的一個(gè)新實(shí)例,并用 E 作為參數(shù),用這個(gè)實(shí)例代替 E。
    ??? * 如果 Java 虛擬機(jī)試圖創(chuàng)建類 ExceptionInInitializerError 的新實(shí)例,但是因?yàn)槌霈F(xiàn) Out-Of-Memory-Error 而無(wú)法創(chuàng)建新實(shí)例,那么就拋出 OutOfMemoryError 對(duì)象作為代替。

    posted on 2007-02-04 20:58 布衣郎 閱讀(1829) 評(píng)論(0)  編輯  收藏 所屬分類: jdk相關(guān)

    只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


    網(wǎng)站導(dǎo)航:
     

    <2007年2月>
    28293031123
    45678910
    11121314151617
    18192021222324
    25262728123
    45678910

    常用鏈接

    留言簿(12)

    隨筆分類(59)

    隨筆檔案(57)

    blog

    java

    uml

    搜索

    •  

    積分與排名

    • 積分 - 357260
    • 排名 - 155

    最新評(píng)論

    閱讀排行榜

    評(píng)論排行榜

    主站蜘蛛池模板: 日本亚洲视频在线| 1000部拍拍拍18勿入免费视频下载| 无码人妻一区二区三区免费手机 | 国产视频精品免费| 一本色道久久综合亚洲精品蜜桃冫| 18禁网站免费无遮挡无码中文| 精品日韩亚洲AV无码一区二区三区| 中国国产高清免费av片| 国产成人免费网站在线观看| 亚洲天然素人无码专区| 成年18网站免费视频网站| 亚洲av无码电影网| 国产成人免费网站| 亚洲国产成人九九综合| 青娱分类视频精品免费2| 亚洲男人的天堂在线| CAOPORM国产精品视频免费| 亚洲中文字幕无码爆乳AV| AAAAA级少妇高潮大片免费看| 又色又污又黄无遮挡的免费视 | 日韩精品亚洲专区在线影视| 国产免费人人看大香伊| 一级a性色生活片久久无少妇一级婬片免费放 | 日韩精品免费视频| 亚洲专区一路线二| 啊v在线免费观看| 日本视频在线观看永久免费| 亚洲不卡1卡2卡三卡2021麻豆| 日韩a在线观看免费观看| 国产黄片不卡免费| 内射少妇36P亚洲区| 午夜小视频免费观看| a级毛片免费观看在线| 亚洲日本中文字幕| 成人特黄a级毛片免费视频| 无人视频免费观看免费视频| 内射干少妇亚洲69XXX| 亚洲AⅤ优女AV综合久久久| 三年片在线观看免费大全电影| 亚洲精品无码日韩国产不卡av| 在线精品亚洲一区二区小说|