예제 #1
0
        //------------------------------------------------------------
        // CSResources.FormatErrorMessage (2)
        //
        /// <summary>
        /// <para>Get the format string by id, create an error message with args and locations</para>
        /// </summary>
        /// <param name="excp"></param>
        /// <param name="errorNo"></param>
        /// <param name="strID"></param>
        /// <param name="errorKind"></param>
        /// <param name="fileName"></param>
        /// <param name="line"></param>
        /// <param name="col"></param>
        /// <param name="lineEnd"></param>
        /// <param name="colEnd"></param>
        /// <param name="args"></param>
        /// <returns></returns>
        //------------------------------------------------------------
        static internal string FormatErrorMessage(
            out Exception excp,
            ERRORKIND errorKind,
            string prefix,
            int errorNo,
            ResNo resNo,
            string fileName,
            int line,
            int col,
            int lineEnd,
            int colEnd,
            params Object[] args)
        {
            string message = null;

            if (!ErrorUtil.FormatErrorMessage(out message, out excp, resNo, args) &&
                String.IsNullOrEmpty(message))
            {
                // If failed to format, concatenate args to create a message.
                if (args.Length > 0)
                {
                    StringBuilder sb = new StringBuilder();
                    for (int i = 0; i < args.Length; ++i)
                    {
                        string str = args[i].ToString();
                        if (!String.IsNullOrEmpty(str))
                        {
                            if (sb.Length > 0)
                            {
                                sb.Append(", ");
                            }
                            sb.Append(str);
                        }
                    }
                    if (sb.Length > 0)
                    {
                        message = sb.ToString();
                    }
                }
                if (String.IsNullOrEmpty(message))
                {
                    message = "Unknown error.";
                }
            }

            return(FormatStringUtil.FormatErrorMessageCore(
                       fileName,
                       line,
                       col,
                       lineEnd,
                       colEnd,
                       errorKind,
                       prefix,
                       errorNo,
                       message));
        }
예제 #2
0
        //------------------------------------------------------------
        // BCErrorInfoManager.GetErrorKind
        //
        /// <summary>
        /// Get an ERROORKIND value from a CSCERRID value.
        /// </summary>
        /// <param name="errID"></param>
        /// <returns></returns>
        //------------------------------------------------------------
        internal ERRORKIND GetErrorKind(ERRID errID)
        {
            int level;

            if (GetWarningLevel(errID, out level))
            {
                return(ErrorUtil.GetErrorKind(level));
            }
            return(ERRORKIND.NONE);
        }
예제 #3
0
        //------------------------------------------------------------
        // BCErrorInfoManager.FormatErrorMessage (2)
        //
        /// <summary>
        /// <para>Get the format string by id,
        /// create an error message with args and locations</para>
        /// </summary>
        /// <param name="excp"></param>
        /// <param name="errID"></param>
        /// <param name="errKind"></param>
        /// <param name="fileName"></param>
        /// <param name="lineStart"></param>
        /// <param name="colStart"></param>
        /// <param name="lineEnd"></param>
        /// <param name="colEnd"></param>
        /// <param name="args"></param>
        /// <returns></returns>
        //------------------------------------------------------------
        internal string FormatErrorMessage(
            out Exception excp,
            ERRID errID,
            ERRORKIND errKind,
            string fileName,
            int lineStart,
            int colStart,
            int lineEnd,
            int colEnd,
            params Object[] args)
        {
            int   errorNo = -1;
            ResNo resNo   = ResNo.Invalid;

            ERRORINFO eInfo = GetInfo(errID);

            if (eInfo != null)
            {
                errorNo = eInfo.ErrorNumber;
                resNo   = eInfo.ResourceNumber;
                if (!ErrorUtil.IsValidErrorKind(errKind))
                {
                    errKind = ErrorUtil.GetErrorKind(eInfo.WarningLevel);
                }
            }
            else
            {
                resNo = ResNo.CSCSTR_InternalError;
                args  = new Object[] { "invalid error ID in CSResources.FormatErrorMessage" };
            }

            return(ErrorUtil.FormatErrorMessage(
                       out excp,
                       errKind,
                       this.Prefix,
                       errorNo,
                       resNo,
                       fileName,
                       lineStart,
                       colStart,
                       lineEnd,
                       colEnd,
                       args));
        }
예제 #4
0
        //------------------------------------------------------------
        // BCErrorInfoManager.FormatErrorMessage (1)
        //
        /// <summary>
        /// <para>Get the format string by id,
        /// create an error message with args</para>
        /// </summary>
        /// <param name="formatted"></param>
        /// <param name="excp"></param>
        /// <param name="errID"></param>
        /// <param name="args"></param>
        /// <returns></returns>
        //------------------------------------------------------------
        internal bool FormatErrorMessage(
            out string formatted,
            out Exception excp,
            ERRID errID,
            params Object[] args)
        {
            ResNo resNo;

            formatted = null;
            excp      = null;

            if (GetResourceNumber(errID, out resNo))
            {
                return(ErrorUtil.FormatErrorMessage(
                           out formatted,
                           out excp,
                           resNo,
                           args));
            }
            return(false);
        }