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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

[java基础问题] Exception 和 Error

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

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

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

  • 轉載于:https://www.cnblogs.com/xiong233/p/10942914.html

    總結

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

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