新聞中心
InvocationTargetException屬于什么異常,是運(yùn)行時異常還是編譯時異常?
編譯錯誤,一般是語法上存在問題,編譯過不去;

運(yùn)行錯誤,是指程序在運(yùn)行過程中出現(xiàn)錯誤,只能說是程序存在一定的邊界bug;
編譯錯誤一般是指java語法的錯誤,運(yùn)行錯誤分兩種一種是error還有就是Exception 有的異常是拋出但可繼續(xù)執(zhí)行之后的代碼,
有的異常是無法繼續(xù)進(jìn)行的代碼如:
RuntimeException,ClassCastException, 那么,編譯和運(yùn)行時期最好的理解就是java1.5之后出現(xiàn)的泛型機(jī)制,
在以前的版本中如果考慮不當(dāng),只會在運(yùn)行時出現(xiàn)異常,現(xiàn)在加了泛型,問題會給暴露在編譯時期,這樣就提高了代碼的安全性。
InvocationTargetException屬于運(yùn)行時異常。它是Java反射機(jī)制中的異常,當(dāng)通過反射調(diào)用方法時,如果目標(biāo)方法拋出了異常,但是調(diào)用方?jīng)]有捕獲該異常,那么就會拋出InvocationTargetException。
它是由Java虛擬機(jī)在運(yùn)行時拋出的,而不是在編譯時檢查的。因此,它不需要在方法簽名中聲明,也不需要在調(diào)用方進(jìn)行捕獲或聲明。
當(dāng)我們使用反射調(diào)用方法時,如果目標(biāo)方法拋出了異常,我們可以通過捕獲InvocationTargetException來獲取原始異常信息,并進(jìn)行相應(yīng)的處理。
常見的java異常有哪些?都是什么意思?
1、ArithmeticException - 算術(shù)運(yùn)算中,被0除或模除。
2、ArrayIndexOutOfBoundsException - 數(shù)組越界訪問。
3、ArrayStoreException - 數(shù)據(jù)存儲異常,寫數(shù)組操作時,對象或數(shù)據(jù)類型不兼容。
4、ClassCastException - 類型轉(zhuǎn)換異常。
5、IllegalArgumentException - 方法的參數(shù)無效。
6、IllegalThreadStateException - 試圖非法改變線程狀態(tài),比方說試圖啟動一已經(jīng)運(yùn)行的線程。
7、NullPointerException - 試圖訪問一空對象的變量、方法或空數(shù)組的元素
8、NumberFormatException - 數(shù)據(jù)格式異常,試圖把一字符串非法轉(zhuǎn)換成數(shù)值(或相反)。
9、SecurityException - 如果Applet試圖執(zhí)行一被WWW瀏覽器安全設(shè)置所禁止的操作。
10、IncompatibleClassChangeException - 如改變了某一類定義,卻沒有重新編譯其他引用了這個類的對象。如某一成員變量的聲明被從靜態(tài)改變?yōu)榉庆o態(tài),但其他引用了這個變量的類卻沒有重新編譯,或者相反。
編譯錯誤和運(yùn)行時異常怎么區(qū)分?
編譯錯誤,一般是語法上存在問題,編譯過不去; 運(yùn)行錯誤,是指程序在運(yùn)行過程中出現(xiàn)錯誤,只能說是程序存在一定的邊界bug; 編譯錯誤一般是指java語法的錯誤,運(yùn)行錯誤分兩種一種是error還有就是Exception 有的異常是拋出但可繼續(xù)執(zhí)行之后的代碼,有的異常是無法繼續(xù)進(jìn)行的代碼如: RuntimeException,ClassCastException, 那么,編譯和運(yùn)行時期最好的理解就是java1.5之后出現(xiàn)的泛型機(jī)制,在以前的版本中如果考慮不當(dāng),只會在運(yùn)行時出現(xiàn)異常,現(xiàn)在加了泛型,問題會給暴露在編譯時期,這樣就提高了代碼的安全性。
到此,以上就是小編對于java class報錯的問題就介紹到這了,希望這3點(diǎn)解答對大家有用。
當(dāng)前標(biāo)題:Java異常ClassCastException怎么解決
本文來源:http://www.dlmjj.cn/article/dpiigij.html


咨詢
建站咨詢
