zoukankan      html  css  js  c++  java
  • C#高级编程八十二天----用户自己定义异常类

    用户自己定义异常类

    前面已经说了不少关于异常的问题了,如今来给大家说一下自己定义异常时咋个回事以及咋样.

     

    为啥会出现自己定义异常类呢?

    用用脚趾头想想也明确,是为了定义咱们自己的异常,自己定义异常类继承自ApplicationException 

    首先异常(Exception)分为两大类,一个是提前定义的异常类,后者是用户自己定义异常类时须要继承的类.

    案例:

     

    using System;

    using System.Collections.Generic;

    using System.Linq;

    using System.Text;

    using System.Threading.Tasks;

     

    namespace 自己定义异常类

    {

        class Program

        {

            static void Main(string[] args)

            {

                //还是上一句的案例

                Console.WriteLine("输入一个05的数: ");

                try

                {

                    //这句话你肯定也知道

                    //不知道的话,你查看一下Parse的意思就明确了,别指望我啥都说到!

                    int num = int.Parse(Console.ReadLine());

                    if (num < 0 || num > 5)

                    {

                        throw new MyException("你搞笑吗逗我呢?

    ");

                    }

                }

                catch (MyException ex)

                {

                    Console.WriteLine(ex.Message);

                }

                catch (Exception ex)

                {

                    Console.WriteLine(ex.Message);

                }

                finally

                {

                    Console.WriteLine("我还是那个牛Xfinally ! ");            

                }

                Console.ReadKey();

            }

        }

        public class MyException : ApplicationException 

    {

    //public MyException (){}

            public MyException(string message) : base(message) { }//这句话知道是干的吧?

    别和我说你忘了!!

     

            public override string Message

            {

                get

                {

                    return base.Message;

                }

            }

        }

     

    }

    这里面自己定义了异常类MyExceptionApplicationExceptioncatchMyException me)用户捕获自己定义异常。catchException e)用于捕获一般异常,假设异常被第一个catch捕获,那么第二个catch将不会运行,直接运行finally中的语句。

     

     

    以下说一下自己定义的异常类通常要注意的以下几点:

    1.假设你的异常类是须要写入文件的,如日志,则须要将异常类声明为可序列化的[Serializable]

    2.要实现一个无參数的构造函数,由于可能会抛出无參数异常

    3.实现一个包括message的构造函数

    4.实现一个包括message以及内部异常类型的构造函数

    5.加入自己的从错误识别数据成员

     

    所以:普通情况下自己定义的格式是这种

        class MyException : ApplicationException

        {

            //这是无參构造函数,作用试试啊自己去看上面

            public MyException()

            { }

     

            public MyException(string message)

                : base(message)

            { }

     

            public MyException(string message, Exception inner)

                : base(message, inner)

            { }

        }

     

  • 相关阅读:
    1094. Car Pooling
    121. Best Time to Buy and Sell Stock
    58. Length of Last Word
    510. Inorder Successor in BST II
    198. House Robber
    57. Insert Interval
    15. 3Sum java solutions
    79. Word Search java solutions
    80. Remove Duplicates from Sorted Array II java solutions
    34. Search for a Range java solutions
  • 原文地址:https://www.cnblogs.com/zhchoutai/p/8744232.html
Copyright © 2011-2022 走看看