日期:2014-05-17  浏览次数:20896 次

c# 窗口应用程序的异常处理问题
-----------不废话了,直接上图。
  

就是如图的 在catch 里怎么处理异常啊,感觉和控制台程序编写是不一样啊,

就假如我现在要捕获socket异常该怎么处理呢?、

----------上午发个帖子,一下子问题就解决了,发现论坛大神很多。。。
------解决方案--------------------
你的方法中是不是有参数e,多个e,可能会混淆
------解决方案--------------------
你这个e已经被使用了啊。换个名称就行么
------解决方案--------------------
你这个e已经被使用了啊。换个名称不就行了么
------解决方案--------------------
你要铺货的是SoctException 异常,代码应该这样写

try
{}
catch(SoctException sex)
{}
catch(***Excetption **ex)
{}
.....

------解决方案--------------------
貌似catch部分的写法有问题
------解决方案--------------------
这个e已经被使用了,换一个吧
------解决方案--------------------
引用:
引用:你这个e已经被使用了啊。换个名称就行么

关键我是没用,那么既然是局部变量的话,我在哪里用过我应该是知道的,我本来是这样的写

catch (socketException e)  这样就出现了上述错误情况, 可能自己平时开发都是C语言的,某些思想没改过来!

 不过换了个变量名 是可以的,那么为什么这个 变量e就不可以呢?……


看下你整个代码在什么方法里,估计是的方法参数里有e,Winform默认事件的参数好多都包含e,比如

private void Form1_Load(object sender, EventArgs e)//方法参数里已经有e
{}


------解决方案--------------------

private void Form1_Load(object sender, EventArgs e)
{
  try
     {
      //your code
      }
  catch(Exception ex)//此处就不能再用e了,因为方法里已经用过
      {
       //your code
       }

}

------解决方案--------------------
 [DisplayName("皮肤状况"), Browsable(true)]
        public string PFZK { get; set; }
        /// <summary>
        /// 皮肤状况
        /// </summary>
        [DisplayName("皮肤状况n"), Browsable(false)]
        public int? PFZK_N{get;set;}


        private void PFZKStringToInt()
        {
            try
            {
                PFZK_N = Convert.ToInt32(this.PFZK);
            }
            catch (Exception ex)
            {
                PFZK_N = 0;
            }
        }