wenshiguang 发表于 2015-10-12 22:12:23

请问C#异常的finally的问题

本帖最后由 wenshiguang 于 2015-10-12 22:14 编辑

             try
             {
                serial_port.Open();
                if (!serial_port.IsOpen)
                {
                  MessageBox.Show("fail!");
                }
            }
            catch (System.Exception ex)
            {
                MessageBox.Show("ex fail!" + ex.ToString());
            }
            finally
            {
                string str;
                //Environment.FailFast(str);
                MessageBox.Show("try finanlly fail!");
                //this.Close();
            }
这么一段代码,try的时候打开串口,
结果catch捕捉不到异常,
但是finally却捕捉到了,
哪位大神能知道怎么发生的异常么?
也就是说我想知道异常的原因,但是明显这种异常不是属于 system.exception类型的, 那能是什么类型呢?
C# 不会用,都是baidu来的。

define_avr 发表于 2015-10-12 22:16:49

finally是一定执行的,不是捕获异常。按你的描述打开串口没有发生异常,所以catch没有捕获。

wenshiguang 发表于 2015-10-13 10:16:44

非常感谢楼上指点,我的确是不会C#,以为finally是其他未捕获异常才执行呢,谢谢啦!
页: [1]
查看完整版本: 请问C#异常的finally的问题