Java构造函数调用被忽略/没有错误抛出

问题描述:

如果这已被其他地方所覆盖,我会提前道歉,但涉及的含糊/常见术语意味着我发现了大量不相关的命中,并且没有任何帮助。由于我的项目相当庞大,我不认为我提供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和刷新,这没有效果。

+1

我假设你调试一个.class文件(字节码),它不与源同步。手动删除“bin”,按F5。 – Aubin

+0

尝试创建新项目,然后尝试调试它。可能有一个缓存的值会导致未处理的文件 –

+0

我同意以前的评论。您可以使用eclipse菜单中的“Project/Clean ...” – Brad

可能会有一个错误,不实施Throwable,因此不能被捕获?你在构造函数中做什么?例如ChuckNorris异常:) Uncatchable ChuckNorrisException

+0

创建一个新项目修复它。 虽然,我的构造函数只是调用4组,每个参数一个。即使它抛出了一个错误,但我认为调试模式仍然可以让我逐步浏览并看到抛出的错误。 – JuniorIncanter