首先介绍一下什么是exception。
在上个学期的C#课程中, 老师介绍了bug 和exception的区别。
具体说来,bug指的是程序猿在编程的过程中犯了错误, 导致程序的执行结果和预期的不同, bug是完全可以避免和解决的。
而exception则指的时程序猿编的程序是正确的,但是健壮性不足,这就导致,当用户的输入与预期不符合时会出现异常,exception是无法预知的,因为编程人员无法确定用户的输入,要解决exception就要努力提高程序的健壮性,最常见的避免方法就是使用try/catch,抛出exception时接住,进入相关的处理过程,就可以避免程序退出。
接下来介绍一下int.parse("abcd").
在c#中,int.parse(String)常常用于处理用户输入,即将textblock中输入的string型内容转化为int型。一般情况下,此类输入框期望用户输入数字内容,然而如果输入的内容不是纯数字,就会出现FormatException异常。原因是int.parse这个函数只接受能转换为数字的string,没有数字的string就不能进行转换。 为了解决这个问题,我写了一个小的程序进行实验,具体代码如下:
private void myparse(object sender, RoutedEventArgs e)
{
int result = 0;
bool a = int.TryParse(par.Text, out result);
if (a)
showparse.Text = result + "";
else
showparse.Text = "Can't parse";
}
这段代码的含义是,使用tryParse进行转换,如果可以转换,就在textBlock中输出,反之就输出不能转换。有效避免了抛出exception。