小弟遇到一个问题,就是如何对某个代码进行异常处理,代码如下:
 
public class Normal
    {
        //double mu;
        //double sigma;        public static double NormalPDF(double mu, double sigma, double x)
        {
            return Math.Pow(2 * Math.PI * sigma * sigma, -0.5) * Math.Exp(-(x - mu) * (x - mu) / 2 * sigma * sigma);
        }
     }这里的sigma必须大于零,我想自定义一个异常处理,不知道这一块该如何写?请大家给予帮助,谢谢!

解决方案 »

  1.   

    自定义
    public class myException : Exception
        {
            private string msg;
            public myException(string Msg)
                : base()
            {
                msg = Msg;
            }
            public override string ToString()
            {
                return msg;
            }
        }   引用
    public class Normal 
        { 
            //double mu; 
            //double sigma;         public static double NormalPDF(double mu, double sigma, double x) 
            { 
                if(!sigma>0)
                   throw   new   myException("sigma必须大于零");                                 
                return Math.Pow(2 * Math.PI * sigma * sigma, -0.5) * Math.Exp(-(x - mu) * (x - mu) / 2 * sigma * sigma); 
            } 
        } 
      

  2.   

    可以直接使用系统定义的异常:ArgumentOutOfRangeException参见:
    ms-help://MS.MSDNQTR.v90.en/fxref_mscorlib/html/aaf07529-5d87-324a-1a9c-55c86d78f952.htm
    Sample Code:using System;class Program
    {
    static void Main(string[] args)
    {
    Guest guest1 = new Guest("Ben", "Miller", 17);
    Console.WriteLine(guest1.GuestInfo());
    }
    }class Guest
    {
    private string FirstName;
    private string LastName;
    private int Age; public Guest(string fName, string lName, int age)
    {
    FirstName = fName;
    LastName = lName;
    if (age < 21)
    throw new ArgumentOutOfRangeException("age","All guests must be 21-years-old or older.");
    else
    Age = age;
    } public string GuestInfo()
    {
    string gInfo = FirstName + " " + LastName + ", " + Age.ToString();
    return(gInfo);
    }
    }