C/C++/Javaなどで、アサーションを行なうための使用するもの。Javaでは予約語だが、C/C++ではマクロである。
Javaでは予約語の一つで、アサーションを行なう際に指定する。
Javaのもともとの仕様(OAK)には存在していたものが、満足な設計と実装を行なう時間的余裕がなかったため、初期の公開仕様では削除されていた。
Java2 1.4で復活。
C/C++でアサーションを行なうためのマクロで、与えらえた式が偽だった場合にはプログラムの実行が終了する。
NDEBUG(No Debugの意)というプリプロセッサシンボルが定義されている場合は、マクロ全体が「(void)0;」のような最適化後に消滅する式に置換されるため、パフォーマンスの低下を避けることが可能。