See my answer to similar question here: Best way to handle Integer overflow in C#?
... there is a C# compiler option that defines how expressions outside of
checked and unchecked are handled: /checked.
The default behavior is suitable for most applications. For other applications, where strict checking should be the default, there is a compiler option to enable such behavior.