我想弄清楚提供不可用參數的方法調用如何在調用代碼行時拋出異常 - 在它到達方法行之前。 下面是一個例子java方法如何在調用之前拋出異常
1. static Integer x;
2. public static void main(String args[]){
3. doStuff(x)} //null pointer exception thrown on this line
//lines 4-49
50. public static void doStuff(int z){}
在這裏我發送整數對象參照方法,並且由於自動裝箱,整數對象爲有效參考進行發送。 如果被調用的方法在到達第50行之前沒有加載到堆棧上,那麼爲什麼JVM在第3行拋出空指針異常,但尚未得到方法簽名?
雖然這是真的,並且是原因,但也許您可以多說明實際發生的情況? –
生成的字節碼是doStuff(x.intValue()),所以如果x爲null,則有一個NPE – Molochdaa