예제 #1
0
        private static string GetMessage(Exception e)
        {
            string message = null;

            if (e as COMException != null)
            {
                message = ManagementException.GetMessage((ManagementStatus)((COMException)e).ErrorCode);
            }
            if (message == null)
            {
                message = e.Message;
            }
            return(message);
        }
예제 #2
0
        internal static void ThrowWithExtendedInfo(Exception e)
        {
            ManagementBaseObject         managementBaseObject = null;
            IWbemClassObjectFreeThreaded errorInfo            = WbemErrorInfo.GetErrorInfo();

            if (errorInfo != null)
            {
                managementBaseObject = new ManagementBaseObject(errorInfo);
            }
            string message = ManagementException.GetMessage(e);
            string item    = message;

            if (message == null && managementBaseObject != null)
            {
                try
                {
                    item = (string)managementBaseObject["Description"];
                }
                catch
                {
                }
            }
            throw new ManagementException(e, item, managementBaseObject);
        }