I was working around with C# and noticed that when I had a very large integer and attempted to make it larger. Rather that throwing some type of overflow error, it simply set the number to the lowest possible value (-2,147,483,648) I believe.
I was wondering if there was a way to enable the overflow checking in Visual Studio?
You can use the following steps to enable Arithmetic Overflow/Underflow checking in Visual Studio :
- Right click on your project in the Solution Explorer and select Properties.
- On the Build tab, click the Advanced button. (It's towards the bottom)
- Check the "Check for arithmetic overflow / underflow" check-box.
This will throw a System.OverflowException
when the overflow occurs rather than it's usual operation of changing the value to a minimum value.
Without Arithmetic Overflow/Underflow enabled:
int test = int.MaxValue;
test++;
//Test should now be equal to -2,147,483,648 (int.MinValue)
With Arithmetic Overflow/Underflow enabled:
int test = int.MaxValue;
test++;
//System.OverflowException thrown
Using a checked block:
checked
{
int test = int.MaxValue;
test++;
//System.OverflowException thrown
}
The documentation for checked is available here. (Thanks to Sasha for reminding me about it.)