zoukankan      html  css  js  c++  java
  • C#拾遗系列(8):异常

    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();

            }

        }

    }

    扫码关注公众号,了解更多管理,见识,育儿等内容

    作者: 王德水
    出处:http://www.cnblogs.com/cnblogsfans
    版权:本文版权归作者所有,转载需经作者同意。

  • 相关阅读:
    P1082 同余方程
    P2678 跳石头
    P2827 蚯蚓
    P1351 联合权值
    P2822 组合数问题
    P3958 奶酪
    P2296 寻找道路
    P2661 信息传递
    平时问题总结
    平时总结
  • 原文地址:https://www.cnblogs.com/cnblogsfans/p/1225260.html
Copyright © 2011-2022 走看看