int.parse("abcd")为什么会抛出exception,参数不是数字时为什么出exception



           首先介绍一下什么是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。


                              

                             

                              

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值