NoSuchMethodError和NoSuchMethodException 区别
2019獨(dú)角獸企業(yè)重金招聘Python工程師標(biāo)準(zhǔn)>>>
NoSuchMethodException繼承自Exception; NoSuchMethodError繼承自Error,一般有兼容性問題時會拋出該異常;
前者是普通的A.b()形式調(diào)用,在極其特殊的情況下,發(fā)現(xiàn)A類里面沒有b方法時拋出,一般情況下這種錯誤是不會存在的,連編譯前的檢查都沒法通過。但是可能在某些極端情況下出現(xiàn),比如字節(jié)碼在內(nèi)存中被改了。 后者我估計是在反射的時候,依據(jù)傳入的方法名尋找方法時沒找到。 Error代表的是無法恢復(fù)的錯誤,必須由jvm處理或者終止,而Exception是可以恢復(fù)的異常,程序員可以自行捕獲。
NoSuchMethodError:當(dāng)應(yīng)用程序試圖調(diào)用類(靜態(tài)或?qū)嵗?#xff09;的指定方法,而該類已不再具有該方法的定義時,拋出該異常。通常由編譯器捕獲該錯誤;僅當(dāng)類定義發(fā)生不相容的更改時,在運(yùn)行時才會發(fā)生該錯誤。
NoSuchMethodException:無法找到某一特定方法時,拋出該異常。
轉(zhuǎn)載于:https://my.oschina.net/xianggao/blog/393954
總結(jié)
以上是生活随笔為你收集整理的NoSuchMethodError和NoSuchMethodException 区别的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Linux 被***后的检查
- 下一篇: Linux 下面的时区与时间错误修复过程