Java构造函数调用被忽略/未引发错误

Java构造函数调用被忽略/未引发错误,java,constructor,try-catch,Java,Constructor,Try Catch,如果其他地方已经涉及到这一点,我提前表示歉意,但所涉及的模糊/通用术语意味着我发现了许多不相关的点击,而没有任何有用的内容。由于我的项目相当大,我认为我提供M(N)WE是不合理的,因此我正在寻找其他检查方法的想法。以下是代码块: try { myClassObject = new MyClass(string1, string2, string3, otherClassObject); (1) System.out.println("Test"); (2) } catch (Ex

如果其他地方已经涉及到这一点,我提前表示歉意,但所涉及的模糊/通用术语意味着我发现了许多不相关的点击,而没有任何有用的内容。由于我的项目相当大,我认为我提供M(N)WE是不合理的,因此我正在寻找其他检查方法的想法。以下是代码块:

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并刷新了它,但没有任何效果。

会不会有一个错误没有实现Throwable,因此无法捕获?你在构造器里做什么?例如,ChuckNorris异常:)

我假定您调试的.class文件(字节码)与源代码不同步。手动删除
bin
,点击F5。尝试创建新项目,然后尝试调试它。可能有一个缓存值导致未同步的文件我同意前面的评论。您可以在eclipse菜单中使用
Project/Clean…
,因为我们是计算机工程师,在出现紧急情况时,请毫不犹豫地使用“重新启动”。剩余的可能性是MyClass的构造函数捕获另一个异常,或者引发另一个与异常不同的异常。创建新项目修复了它。不过,作为参考,我的构造函数只调用了4个集合,每个参数一个。然而,即使它抛出了一个错误,我认为调试模式仍然允许我单步执行并看到抛出的错误。