[C#][原创]捕获异常try-catch-finally返回值研究报告

举报
futureflsl 发表于 2019/12/27 09:58:36 2019/12/27
【摘要】 示例代码:using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Threading.Tasks;using System.W...

示例代码:


using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

using System.Windows.Forms;


namespace 捕获异常问题

{

    public partial class Form1 : Form

    {

        public Form1()

        {

            InitializeComponent();

        }


        private void button1_Click(object sender, EventArgs e)

        {

            Console.WriteLine("---------"+test());

        }



        public int test()

        {

            try{

                Console.WriteLine("正常1");

                throw new Exception();

                Console.WriteLine("正常2");

                return 0;//第1句


            }catch(Exception ex)

            {

                Console.WriteLine("异常");

                return 1;//第2句


            }finally

            {

                Console.WriteLine("最终");

                return 2;//第3句

            }


            return 3;//第4句


        }

    }

}


第一种情况:所有语句不屏蔽,输出结果会报错:控制不能离开 finally 子句主体,说明finally不能有return 语句


第二情况:屏蔽第3句,输出


正常1

异常

最终

---------1


情况分析:抛出异常后,先执行catch里面的语句,有return会先执行finally里面语句然后return


第三情况:屏蔽第2句,第3句,输出


正常1

异常

最终

---------3


这种情况很好理解


以上基本就是这些常见问题了



————————————————

版权声明:本文为CSDN博主「云未归来」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/FL1623863129/article/details/103726819


【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。