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.)
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…