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

时间:2014-07-22 08:47:36

标签: java compiler-errors

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

#error "Ouch!"

导致VC ++ 9发出以下内容:

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

并停止编译。

我找不到与Java相同的东西。

Java是否有像#error指令那样使编译器停止编译并发出特定错误消息?

2 个答案:

答案 0 :(得分:4)

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

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

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

在你的java程序中:

#error // Description

由于Java编译器无法识别#,因此会产生语法错误。

答案 1 :(得分:1)

如果你绝望,你可以使用" javax注释处理API"实现类似的东西。 see this

想法是使用:

javax.tools.Diagnostic.Kind.WARNING

javax.tools.Diagnostic.Kind.ERROR