int i=0,j=0,result=0;int flag=1;

 try
 {
 i=int.Parse(textBox1.Text);
 }
 catch(OverflowException)
 {   flag=0;
 MessageBox.Show("操作数1溢出");
 }
 try
 {
 j=int.Parse(textBox3.Text);
 }
 catch(OverflowException)
 {   flag=0;
 MessageBox.Show("操作数2溢出");
 }
try
{  if(flag==1)
result=i*j;
}
catch
{flag=0;
MessageBox.Show("计算结果过程出错");
 

}
if(flag==1) textBox4.Text=result.ToString();
比如我输入两个比较的的数相乘结果应该出现异常,但没反应!请问该如何处理

解决方案 »

  1.   

    result = checked(i*j); 
      

  2.   

    http://msdn.microsoft.com/zh-cn/library/h25wtyxf.aspxC# 语言参考
    /checked(检查整数算法)(C# 编译器选项)/checked 选项指定,不在 checked 或 unchecked 关键字的范围内、并且产生的值超出数据类型范围的整数算法语句是否将导致运行时异常。checked 或 unchecked 关键字范围内的整数算法语句不受 /checked 选项的影响。如果不在 checked 或 unchecked 关键字范围内的整数算法语句产生的值超出数据类型范围,并且编译中使用了 /checked+ (/checked),则该语句将在运行时导致异常。如果编译中使用的是 /checked-,则该语句在运行时不会导致异常。此选项的默认值是 /checked-,所以只需完全省略此选项,就可以获得相同的效果。使用 /checked- 的一个情况是在生成大应用程序时:有时使用自动化工具生成这类应用程序,这些工具可能自动将 /checked 设置为 +,这时您可以通过指定 /checked- 重写全局默认值。在 Visual Studio 开发环境中设置此编译器选项打开项目的“属性”页。1.单击“生成”属性页。2.单击“高级”按钮。3.修改“检查算法上溢/下溢”属性。