在C,C ++和C#中有#error
指令,它使编译器停止编译并发出指定的错误消息。
#error "Ouch!"
导致VC ++ 9发出以下内容:
1>Source.cpp(10) : fatal error C1189: #error : "Ouch!"
并停止编译。
我找不到与Java相同的东西。
Java是否有像#error
指令那样使编译器停止编译并发出特定错误消息?
答案 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