Custom exception in C#

Although the .net framework contains all kinds of exception types which are sufficient in most cases, it can make sense to define custom exception in our own application. They can greatly simplify and imprve the error handling.

Custom exception derive from Exception calss.

Define custom exception calss:

 // define one base class derive from Exception
    public class DataLayerException : Exception
    {
        public DataLayerException()
            : base()
        {
 
        }
        public DataLayerException(string message)
            : base(message)
        {
 
        }
        public DataLayerException(string message, Exception innerexception)
        {
 
        }
    }

    // define a child class derive from base calss
    public class FileNotFoundException:DataLayerException
    {
        public FileNotFoundException() : base()
        {

        }
        public FileNotFoundException(string filename)
            : base(filename)
        {
 
        }

        public FileNotFoundException(string filename, Exception innerexception)
            : base(filename, innerexception)
        {
 
        }
        public FileNotFoundException(string format, params object[] parmeter)
            : base(string.Format(format, parmeter))
        {
 
        }

        public FileNotFoundException(string format, Exception innerexception, params object[] parmeter)
            : base(string.Format(format, parmeter), innerexception)
        {
 
        }

        public FileNotFoundException(SerializationInfo info, StreamingContext context)
            : base(info, context)
        {
 
        }

 1. Throw exception with out message

    throw new FileNotFoundException()

 2. Throw exception with simple message

 throw new FileNotFoundException(message)

 3. Throw exception with message format and parameters

 
throw new FileNotFoundException("Exception with parameter value '{0}'", param)

4. Throw exception with simple message and inner exception

throw new FileNotFoundException(message, innerException)

 5. Throw exception with message format and inner exception. Note that, the variable length params are always floating.

 throw new FileNotFoundException("Exception with parameter value '{0}'", innerException, param)

6. The last flavor of custom exception constructor is used during exception serialization/deserialization.

原文地址:https://www.cnblogs.com/Jenny90/p/2969242.html