【问题标题】:Skipping Java compilation errors [duplicate]跳过Java编译错误[重复]
【发布时间】:2013-06-13 10:44:42
【问题描述】:

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

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

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

【问题讨论】:

  • 你的意思是运行时错误吗?
  • 你是指单个文件还是整个项目?
  • 一个甚至不能运行的程序有什么用。 (你可以随时评论)。
  • @domfarr 没有接受答案
  • "so the program may continue"

标签: java


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

    所以,答案是,不能。

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

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

    【讨论】:

      【解决方案3】:

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

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

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

      【讨论】:

        【解决方案4】:

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

        【讨论】:

          【解决方案5】:

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

          【讨论】:

            【解决方案6】:

            嗯……有点。

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

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

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


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

            【讨论】:

              【解决方案7】:

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

              【讨论】:

                猜你喜欢
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 2017-11-03
                • 2012-08-27
                • 2014-08-28
                • 2014-09-09
                相关资源
                最近更新 更多