當前位置:名人名言大全網 - 短信平臺 - ClassNotFoundException和NoClassDefFoundError的區別

ClassNotFoundException和NoClassDefFoundError的區別

ClassNotFoundException和NoClassDefFoundError,這兩個看起來都是找不到類導致的異常,但是壹個是Exceptioin異常,壹個是Error錯誤,我們對比壹下,就能理解Error和Exception的區別了。

ClassNotFoundException,是個Exception異常,壹般在反射時遇到,是動態加載時報錯的,動態加載是開發者故意設計的業務邏輯,本身就有失敗的可能,所以建議捕獲。

NoClassDefFoundError,是個Error錯誤,這個錯誤發生時,在編譯時都沒有問題,但是運行時,JVM或者ClassLoader去加載某個類,發現這個類找不到了,就會報這個錯誤。這壹般是運行環境的問題,例如缺少庫文件什麽的,這個錯誤與業務邏輯無關,是必須解決掉的錯誤,否則軟件無法繼續運行,所以不建議捕獲。