• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

C#拾遗系列(8):异常

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

 

namespace NetTest

{

    public class TestException

    {

        public void TestThrow()

        {

            //try 块必须与 catch 或 finally 块一起使用,并且可以包括多个 catch 块

            try

            {

                CustomException ex = new CustomException("test custom exception");

                ex.ModuleName = "Front-End";

                throw ex;

            }

            /*

            多个 catch 块可以串联在一起。多个 catch 块的计算顺序是从顶部到底部

            但是,对于所引发的每个异常,都只执行一个 catch 块。

            与所引发异常的准确类型或其基类最为匹配的第一个 catch 块将被执行。

            如果没有任何 catch 块指定匹配的异常筛选器,则将执行不带筛选器的 catch 块(如果有的话)。

            需要将带有最具体的(即派生程度最高的)异常类的 catch 块放在最前面

           */

            catch (CustomException ex)

            {

                System.Console.Out.WriteLine(ex.Message + "Module is:" + ex.ModuleName);

                System.Console.Out.WriteLine("------------------------------");

                System.Console.Out.WriteLine(ex.ToString());

            }

            catch (Exception ex)

            {

                System.Console.Out.WriteLine(ex.Message);

            }

 

            //Finally 块可让程序员清理中止的 try 块可能留下的任何不明确状态,

            //或释放任何外部资源(如图形句柄、数据库连接或文件流)

            //而不用等待运行库中的垃圾回收器来终结这些对象,finally块任何情况都执行

            finally

            {

                // Code to execute after try (and possibly catch) here

                System.Console.Out.WriteLine("test complete");

            }

        }

    }

 

    //自定义的异常

    [Serializable]

    class CustomException : Exception

    {

 

        public CustomException(string message):base(message)

        {           

        }

        public string ModuleName { get; set; }

 

        public override string ToString()

        {

            return base.ToString() + this.ModuleName.ToString();

        }

    }

}


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
C#中区别多态、重载、重写C#之重载与覆盖发布时间:2022-07-10
下一篇:
C#编程(五十七)----------位数组发布时间:2022-07-10
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap