C#基础之异常处理及自定义异常(2)

值得一提的是推荐使用throw来抛出异常。因为throw ex会将到现在为止的所有信息清空,认为你catch到的异常已经被处理了,只不过处理过程中又抛出新的异常,从而找不到真正发生异常的代码位置。

四、自定义异常

自定义异常应该具有以下三个特征:

①  继承自System.ApplicationException类,并且使用Exception作为自定义异常类名的结尾

②  包含三个构造函数:一个无参构造函数;一个字符串参数的构造函数;一个字符串参数,一个内部异常作为参数的构造                函数

③  抛出自定义异常:throw new MyException(); 捕获自定义异常:Catch(MyException){  }

举个例子:

public class MyException : ApplicationException
    {
        private string error;
        private Exception innerException;
        //无参数构造函数
        public MyException()
        {

}
        //带一个字符串参数的构造函数
        public MyException(string msg)
        {
            error = msg;
        }
        //带有一个字符串参数和一个内部异常信息参数的构造函数
        public MyException(string msg, Exception exception)
        {
            innerException = exception;
            error = msg;
        }
        public string GetError()
        {
            return error;
        }
    }

五、总结

异常处理的优势:

对用户来说,在程序发生错误时,不至于程序崩溃,而可以给出提示信息,提升用户的使用体验

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/67a3676a9bcdb247e7bd66c87aa1dfb5.html