Possible Duplicate:
Why don’t languages raise errors on integer overflow by default?
Why doesn't C# use arithmetic overflow checking by default?
I figure that it would generally be better to have exceptions occur when this occurs so that errors aren't obscured. I know that it's occasionally useful to take advantage of the 'wrapping' behaviour that occurs, but the unchecked
keyword could be used in these circumstances to make the intentions explicit.
I expect that this decision was made intentionally, perhaps to increase compatibility with other C-based languages.