代码之家  ›  专栏  ›  技术社区  ›  sharptooth

我可以让Java编译器发出特定的错误消息并停止编译吗?

  •  2
  • sharptooth  · 技术社区  · 10 年前

    在C、C++和C#中 #error 指令,使编译器停止编译并发出指定的错误消息。

    #error "Ouch!"
    

    使VC++9发出以下信号:

    1>Source.cpp(10) : fatal error C1189: #error :  "Ouch!"
    

    并停止编译。

    我找不到与Java等效的东西。

    Java有类似的功能吗 #错误 使编译器停止编译并发出特定错误消息的指令?

    2 回复  |  直到 10 年前
        1
  •  4
  •   gexicide    10 年前

    问题是,你为什么需要用Java语言?在C/C++中 #ifdef 所以你可以发射 #error 如果特定静态条件为真。在Java中,你没有这样的东西,所有的代码都是编译的。因此,您总是会得到错误。拥有一个总是产生编译错误的文件没有多大用处。

    如果您确实需要一个总是引发错误的文件:

    您可以简单地添加一个常见的语法错误;您不会得到可自定义的错误消息,但会得到一个未编译的文件。您可以在错误后面添加注释。由于大多数编译器显示遇到错误的行,因此将显示该注释。为什么不简单地重复使用 #错误 :

    在java程序中:

    #error // Description
    

    自从 # Java编译器无法识别,这将产生语法错误。

        2
  •  1
  •   Icarus3    10 年前

    如果您感到绝望,可以使用“javax注释处理API”来实现类似的功能。 see this

    其目的是使用:

    javax.tools.Diagnostic.Kind.WARNING
    

    javax.tools.Diagnostic.Kind.ERROR