/// <summary>
        /// Checks for specific error types
        /// </summary>
        /// <param name="exceptionTypes">the desired types</param>
        /// <returns>a value indicating whether the specified type was found</returns>
        public bool ContainsType(params string[] exceptionTypes)
        {
            bool retVal =
                exceptionTypes.Select(
                    t => ExceptionType != null && ExceptionType.Contains(t)).Any(n => n);

            if (!retVal && InnerException != null)
            {
                retVal |= InnerException.Any(n => n.ContainsType(exceptionTypes));
            }

            return(retVal);
        }