如果在其他地方已经涵盖了这一点,我提前道歉,但所涉及的模糊/常用术语意味着我发现了许多不相关的命中,没有任何有用的东西。由于我的项目相当大,我不认为提供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参数构造函数失败的原因。
简而言之,我不知道如何做到这一点,更不用说如何阻止它发生了。
编辑:我已经完成了干净 - >构建 - >多次调试代码,所以我相信它不是一个.class问题。以防我删除.bin并刷新,这没有效果。
答案 0 :(得分:0)
是否存在未实现Throwable的错误,因此无法捕获?你在构造函数中做什么?例如ChuckNorris异常:) Uncatchable ChuckNorrisException