2015-06-14 35 views
0

m是一種方法,我想通過反射在特定實例上調用它。 我下面的代碼演示瞭如何做的invokation:瞭解調用目標Java中的異常換行

try { 
    m.invoke(classInstance);     
} catch (OOPAssertionError e) { 

} catch (Exception e) { 
    system.out(e.getCause().getClass().getName()); 
} 

現在實例假設拋出下面的類時,我調用具體方法我只是試圖更早調用,這是在以前的m代碼:

public class OOPAssertionError extends AssertionError { 
} 

我認爲該程序將捕獲OOPAssertionError,但實際上它捕獲異常,而不是。 並打印下列行:「package.OOPAssertionError」。

爲什麼會發生這種情況?

+1

你讀過'Method#invoke'的Javadoc嗎? –

回答