如果這已被其他地方所覆蓋,我會提前道歉,但涉及的含糊/常見術語意味着我發現了大量不相關的命中,並且沒有任何幫助。由於我的項目相當龐大,我不認爲我提供M(N)WE是不合理的,所以我正在尋找關於還有哪些方面需要檢查的想法。這裏的代碼塊:Java構造函數調用被忽略/沒有錯誤拋出
try {
myClassObject = new MyClass(string1, string2, string3, otherClassObject); (1)
System.out.println("Test"); (2)
} catch (Exception e){
System.out.println(e.getMessage() + " " + e.getStackTrace()); (3)
}
我的構造函數(1)永遠不會被調用。然而,(2)和(3)都不會被調用(即,測試字符串從不被打印,也不會被打印)。從我對try-catch塊的理解來看,這是不可能的。
我使用Eclipse的調試模式,並能夠跨越該行。所有4個對象都被定義並可以打印得很好(所以這不是訪問問題)。在調試模式下查看時,所有4個對象都具有期望的值。然而,調試模式從(1)跳到我的代碼的其餘部分,從不碰(2)和(3)。放置在MyClass的構造函數中的調試點永遠不會到達。
我可以調用MyClass的默認構造函數代替4參數構造函數,它的行爲如所期望的那樣。然後,我可以在(2)之後複製/粘貼4參數構造函數的內容,並且正確設置所有4個參數,並根據需要創建對象。顯然這是一個可行的解決方法,但我找不到4參數構造函數失敗的原因。
總之,我不知道這是如何可能的,更不用說如何阻止它發生。
編輯:我已經對代碼執行了多次clean - > build - > debug,所以我相當確信它不是.class的問題。以防萬一我刪除.bin和刷新,這沒有效果。
我假設你調試一個.class文件(字節碼),它不與源同步。手動刪除「bin」,按F5。 – Aubin
嘗試創建新項目,然後嘗試調試它。可能有一個緩存的值會導致未處理的文件 –
我同意以前的評論。您可以使用eclipse菜單中的「Project/Clean ...」 – Brad