Exception

库:http://crashreporterdotnet.codeplex.com/documentation

private
void ThrowException<T>(string message, params object[] values) where T : Exception, new() { // NOTE Cannot provide arguments when creating an instance of a type parameter T. var exception = (T)Activator.CreateInstance(typeof(T), string.Format(message, values)); throw exception; }

And you would simply use it like this:

ThrowException<InvalidOperationException>("VehicleMovementBatch Id {0} was not located.", batchId); 
************

Define custom exception class:
[Serializable]
public class CustomException : Exception
{
    public CustomException()
        : base() { }
    
    public CustomException(string message)
        : base(message) { }
    
    public CustomException(string format, params object[] args)
        : base(string.Format(format, args)) { }
    
    public CustomException(string message, Exception innerException)
        : base(message, innerException) { }
    
    public CustomException(string format, Exception innerException, params object[] args)
        : base(string.Format(format, args), innerException) { }
    
    protected CustomException(SerializationInfo info, StreamingContext context)
        : base(info, context) { }
}

Example:
 
1. Throw exception with out message
throw new CustomException()
2. Throw exception with simple message
throw new CustomException(message)
3. Throw exception with message format and parameters
throw new CustomException("Exception with parameter value '{0}'", param)
4. Throw exception with simple message and inner exception
throw new CustomException(message, innerException)
5. Throw exception with message format and inner exception. Note that, the variable length params are always floating.
throw new CustomException("Exception with parameter value '{0}'", innerException, param)
6. The last flavor of custom exception constructor is used during exception serialization/deserialization.
posted on 2013-08-30 20:03  武胜-阿伟  阅读(427)  评论(0编辑  收藏  举报