捕捉异常后,就会影响性能和速度。但是,如果不这样做,就会弹出那个可怕的对话框。例如:try{
decimal pp=decimal.Parse(TextBox1.Text)* decimal.Parse(TextBox2.Text);
TextBoxResult.Text=pp.ToString();
}catch(OverFlowException){TextBoxResult.Text=@"The result is too Large!";}
我想改为try...finally的形式,但是要保证不会弹出错误警告。请问如何修改代码?非常感谢!
decimal pp=decimal.Parse(TextBox1.Text)* decimal.Parse(TextBox2.Text);
TextBoxResult.Text=pp.ToString();
}catch(OverFlowException){TextBoxResult.Text=@"The result is too Large!";}
我想改为try...finally的形式,但是要保证不会弹出错误警告。请问如何修改代码?非常感谢!
.....你的代码
}catch{
什么都不作
}
finally{
...你的代妈
}
只要有try catch的结构,就会在第一种情况下做许多额外处理,从而导致性能上的下降. 就是说只要有catch{},就算里边是空的,只要它走过了catch,就会有性能损失。
所以说这个异常捕捉是不可避免的。
但是可以用代码检测把try块中可能发生异常的代码缩减到最小。如下:
decimal d1;
decimal d2;
decimal d3;
bool b1 = decimal.TryParse(TextBox1.Text, out d1);
bool b2 = decimal.TryParse(TextBox2.Text, out d2); if (!b1 || !b2)
TextBoxResult.Text = @"The result is too Large!";
else
{
try
{
TextBoxResult.Text = decimal.Multiply(d1, d2);
}
catch (System.OverflowException)
{ TextBoxResult.Text = @"The result is too Large!"; }
}
想到一个够严密但是比较BT的写法,嘿嘿,先去吃饭