A misfeature of a system, especially a programming language or environment, that tends to breed bugs or mistakes because it both enticingly easy to invoke and completely unexpected and/or unreasonable in its outcome.

For example, a classic gotcha in C is the fact that

	if (a=b) {code;}

is syntactically valid and sometimes even correct. It puts the value of "b" into "a" and then executes "code" if "a" is non-zero. What the programmer probably meant was

	if (a==b) {code;}

which executes "code" if "a" and "b" are equal.

[Jargon File]