C#溢出不起作用?如何启用溢出检查?

时间:2011-02-02 18:52:24

标签: c# .net visual-studio exception overflow

我正在使用C#并注意到当我有一个非常大的整数并尝试将其变大时。而是抛出某种类型的溢出错误,它只是将数字设置为我认为的最低可能值(-2,147,483,648)。

我想知道是否有办法在Visual Studio中启用溢出检查?

1 个答案:

答案 0 :(得分:31)

您可以使用以下步骤在Visual Studio中启用算术溢出/下溢检查:

  
      
  1. 在Solution Explorer中右键单击您的项目,然后选择Properties。
  2.   
  3. 在“构建”选项卡上,单击“高级”按钮。 (它在底部)
  4.   
  5. 选中“检查算术溢出/下溢”复选框。
  6.   

当发生溢出时,这将抛出System.OverflowException,而不是通常将值更改为最小值。

未启用算术溢出/下溢:

int test = int.MaxValue;
test++;
//Test should now be equal to -2,147,483,648 (int.MinValue)

启用算术溢出/下溢:

int test = int.MaxValue;
test++;
//System.OverflowException thrown

使用已检查的块:

checked
{
    int test = int.MaxValue;
    test++;
    //System.OverflowException thrown
}

已检查的文档可用here.感谢Sasha提醒我。