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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

[java基础问题] Exception 和 Error

發(fā)布時(shí)間:2025/3/15 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 [java基础问题] Exception 和 Error 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
  • Exception 和 Error
  • Exception 和 Error 都是繼承了 Throwable 類, 在 java 中, 只有繼承了 Throwable 類才可以使用 throw 拋出, 或者 cath 捕獲;
  • Exception 意為 java 運(yùn)行時(shí)可能發(fā)生的不合理的情況, 出現(xiàn)時(shí)并不會時(shí)程序異常退出。其中 Exception 又分為可檢查異常, 非可檢查異常。 可檢查異常需要顯示的捕獲, 或者拋出, 不可檢查異常不需要顯示的捕獲, 或者拋出;
  • Error 意為 java 運(yùn)行時(shí)發(fā)生的錯(cuò)誤, 出現(xiàn)時(shí)絕大部分會使程序異常退出, 使程序無法使用;
  • 知識擴(kuò)展
  • 盡量不要捕獲類似 Exception 這樣的通用異常,而是應(yīng)該捕獲特定異常。
  • 不要將異常信息吞掉。
  • 不要使用printStackTrace(),此方法會將信息輸出到標(biāo)準(zhǔn)出錯(cuò)系統(tǒng)(standard error stream)中,很難判斷到底輸出到哪了,最好輸出到日志系統(tǒng)中。
  • 問題集:
  • NoClassDefFoundError 和 ClassNotFoundException 的區(qū)別;
    NoClassDefFoundError是一個(gè)錯(cuò)誤(Error),而ClassNOtFoundException是一個(gè)異常,在Java中對于錯(cuò)誤和異常的處理是不同的,我們可以從異常中恢復(fù)程序但卻不應(yīng)該嘗試從錯(cuò)誤中恢復(fù)程序。

    ClassNotFoundException的產(chǎn)生原因主要是:
    Java支持使用反射方式在運(yùn)行時(shí)動態(tài)加載類,例如使用Class.forName方法來動態(tài)地加載類時(shí),可以將類名作為參數(shù)傳遞給上述方法從而將指定類加載到JVM內(nèi)存中,如果這個(gè)類在類路徑中沒有被找到,那么此時(shí)就會在運(yùn)行時(shí)拋出ClassNotFoundException異常。
    解決該問題需要確保所需的類連同它依賴的包存在于類路徑中,常見問題在于類名書寫錯(cuò)誤。
    另外還有一個(gè)導(dǎo)致ClassNotFoundException的原因就是:當(dāng)一個(gè)類已經(jīng)某個(gè)類加載器加載到內(nèi)存中了,此時(shí)另一個(gè)類加載器又嘗試著動態(tài)地從同一個(gè)包中加載這個(gè)類。通過控制動態(tài)類加載過程,可以避免上述情況發(fā)生。

    NoClassDefFoundError產(chǎn)生的原因在于:
    如果JVM或者ClassLoader實(shí)例嘗試加載(可以通過正常的方法調(diào)用,也可能是使用new來創(chuàng)建新的對象)類的時(shí)候卻找不到類的定義。要查找的類在編譯的時(shí)候是存在的,運(yùn)行的時(shí)候卻找不到了。這個(gè)時(shí)候就會導(dǎo)致NoClassDefFoundError.
    造成該問題的原因可能是打包過程漏掉了部分類,或者jar包出現(xiàn)損壞或者篡改。解決這個(gè)問題的辦法是查找那些在開發(fā)期間存在于類路徑下但在運(yùn)行期間卻不在類路徑下的類。

  • 轉(zhuǎn)載于:https://www.cnblogs.com/xiong233/p/10942914.html

    總結(jié)

    以上是生活随笔為你收集整理的[java基础问题] Exception 和 Error的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。