0

是否可以跳过 Java 编译错误?

因此,即使遇到错误,程序也可以继续运行。

所以它会尽最大努力继续工作(直到一切爆炸)

4

7 回答 7

4

不,如果你得到编译错误,这意味着你的程序不是有效的 Java。它继续下去意味着什么?它还没有运行。

于 2013-06-13T10:46:11.727 回答
2

如果您有编译错误,则程序无法编译为运行时代码。这实际上意味着该程序无法运行。

所以,答案是否定的,它不能。

还有另一种类型的错误 -运行时错误。这些是由于代码中的错误逻辑(即试图修改空对象)而发生的。编译器无法发现这些错误,因为这些错误非常微妙,取决于数据(大部分时间取决于用户输入)。您可以使用try-catch块跳过那些。如果您想阅读更多内容,请参阅这篇文章:

http://docs.oracle.com/javase/tutorial/essential/exceptions/try.html

于 2013-06-13T10:47:01.310 回答
2

是的,您可以使用 eclipse 编译器来做到这一点。它将用调用时直接抛出异常的方法替换包含错误的方法。

这将允许您运行程序的其余部分。不过我不推荐它,因为你会得到一个不一致的程序。所以使用风险自负。

它仍然可能派上用场,例如,如果您运行单元测试。这允许您运行测试,即使您的程序的某些部分肯定不工作。

于 2013-06-13T10:48:22.050 回答
1

,它只是不可能。java 代码的编译为您提供字节码,然后在 JVM 上运行。如果编译失败,那么 Java 编译器将无法生成有效的字节码。这就是生成无法由 JVM 运行的错误字节码的原因。

于 2013-06-13T10:47:32.453 回答
1

如果我们破坏了那个东西,那么迟早没有人会开发代码。:)

于 2013-06-13T10:49:57.633 回答
1

嗯……有点。

某些 IDE 允许您运行其中包含编译错误的代码。例如,Eclipse。

然后,当您尝试执行(说)带有编译错误的方法时,您会收到一个异常,其消息说明此代码中存在编译错误。事实上,Eclipse 编译器已经将该方法编译为一个只会抛出异常的存根方法。

请注意,JLS 不认可此行为。就个人而言,我认为使用这个 IDE 功能是个坏主意。


IMO,更好的方法是注释掉导致编译错误的代码部分......或者只是修复它们。

于 2013-06-13T10:51:07.280 回答
0

您希望避免compilation errors,您会做什么?如果您避免编译错误,您会得到.class文件吗?没有.class文件你无法想象运行你的代码。当您的代码包含语法错误时会出现编译错误。没有正确的语法,你什么也做不了。有关编译错误的更多信息,请参见

于 2013-06-13T11:04:17.420 回答