Esempio n. 1
0
 //------------------------------------------------------------
 // BaseException.Set (2)
 //
 /// <summary></summary>
 /// <param name="id"></param>
 /// <param name="args"></param>
 //------------------------------------------------------------
 internal void Set(IDTYPE id, params Object[] args)
 {
     this.ErrorID   = id;
     this.Kind      = GetErrorKind(id);
     this.Arguments = args;
     this.FormatErrorMessage(out this.Message);
 }
Esempio n. 2
0
 //------------------------------------------------------------
 // CController.ReportError (4)
 //
 /// <summary></summary>
 /// <param name="kind"></param>
 /// <param name="excp"></param>
 //------------------------------------------------------------
 internal void ReportError(ERRORKIND kind, Exception excp)
 {
     if (excp == null)
     {
         return;
     }
     ReportError(kind, excp.Message);
 }
Esempio n. 3
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));
        }
Esempio n. 4
0
        //------------------------------------------------------------
        // CController.ReportError (1)
        //
        /// <summary></summary>
        /// <param name="kind"></param>
        /// <param name="message"></param>
        //------------------------------------------------------------
        internal void ReportError(ERRORKIND kind, string message)
        {
            CountReportedError(kind);

            string buffer = FormatStringUtil.FormatErrorMessageCore(
                null, -1, -1, -1, -1,
                kind,
                null, -1,
                message);

            WriteLine(buffer);
        }
Esempio n. 5
0
        //------------------------------------------------------------
        // ErrorUtil.IsValidErrorKind
        //
        /// <summary></summary>
        /// <param name="kind"></param>
        /// <returns></returns>
        //------------------------------------------------------------
        internal static bool IsValidErrorKind(ERRORKIND kind)
        {
            switch (kind)
            {
            case ERRORKIND.FATAL:
            case ERRORKIND.ERROR:
            case ERRORKIND.WARNING:
                return(true);

            default:
                return(false);
            }
        }
Esempio n. 6
0
        //------------------------------------------------------------
        // CController.CountErrorObject
        //
        /// <summary></summary>
        /// <param name="kind"></param>
        //------------------------------------------------------------
        private void CountReportedError(ERRORKIND kind)
        {
            switch (kind)
            {
            case ERRORKIND.FATAL:
            case ERRORKIND.ERROR:
                ++(this.countOfReportedErrors);
                //++(this.countOfWarnsReportedAsErrors);
                break;

            default:
                break;
            }
        }
Esempio n. 7
0
        //------------------------------------------------------------
        // CController.CreateError (3)
        //
        /// <summary></summary>
        /// <param name="kind"></param>
        /// <param name="excp"></param>
        /// <param name="error"></param>
        /// <returns></returns>
        //------------------------------------------------------------
        internal bool CreateError(
            ERRORKIND kind,
            Exception excp,
            out CError error)
        {
            error = null;
            if (excp == null)
            {
                return(false);
            }

            error = new CError();
            error.Initialize(kind, excp);
            return(true);
        }
Esempio n. 8
0
        //------------------------------------------------------------
        // CController.CreateError (2)
        //
        /// <summary></summary>
        /// <param name="kind"></param>
        /// <param name="text"></param>
        /// <param name="error"></param>
        /// <returns></returns>
        //------------------------------------------------------------
        internal bool CreateError(
            ERRORKIND kind,
            string text,
            out CError error)
        {
            error = null;
            if (String.IsNullOrEmpty(text))
            {
                return(false);
            }

            error = new CError();
            error.Initialize(kind, text);
            return(true);
        }
Esempio n. 9
0
 //------------------------------------------------------------
 // BCErrorInfoManager.FormatErrorMessage (3)
 //
 /// <summary></summary>
 /// <param name="excp"></param>
 /// <param name="errID"></param>
 /// <param name="errKind"></param>
 /// <param name="args"></param>
 /// <returns></returns>
 //------------------------------------------------------------
 internal string FormatErrorMessage(
     out Exception excp,
     ERRORKIND errKind,
     ERRID errID,
     params Object[] args)
 {
     return(FormatErrorMessage(
                out excp,
                errID,
                errKind,
                null,
                -1,
                -1,
                -1,
                -1,
                args));
 }
Esempio n. 10
0
        //------------------------------------------------------------
        // FormatStringUtil.GetErrorKindString (1)
        //
        /// <summary>
        /// return a string representing an ERRORKIND value.
        /// </summary>
        /// <param name="kind"></param>
        /// <returns></returns>
        //------------------------------------------------------------
        static internal string GetErrorKindString(ERRORKIND kind)
        {
            switch (kind)
            {
            case ERRORKIND.FATAL:
                return("fatal error");

            case ERRORKIND.ERROR:
                return("error");

            case ERRORKIND.WARNING:
                return("warning");

            //case ERRORKIND.NONE:
            default:
                return(null);
            }
        }
Esempio n. 11
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));
        }
Esempio n. 12
0
        //------------------------------------------------------------
        // CController.ReportError (2b)
        //
        /// <summary>
        /// <para>(ConsoleOutput::ShowErrorIdString in sscli.)</para>
        /// </summary>
        /// <param name="errorID"></param>
        /// <param name="kind"></param>
        /// <param name="args"></param>
        //------------------------------------------------------------
        internal void ReportError(ALERRID errorID, ERRORKIND kind, params Object[] args)
        {
            string    msg  = null;
            Exception excp = null;

            msg = ALErrorInfo.Manager.FormatErrorMessage(
                out excp,
                kind,
                errorID,
                args);

            if (msg != null && excp == null)
            {
                CountReportedError(kind);
                WriteLine(msg);
                return;
            }

            if (excp != null)
            {
                OnCatastrophicError(excp.Message);
            }
        }
Esempio n. 13
0
        //------------------------------------------------------------
        // FormatStringUtil.FormatErrorMessageCore
        //
        /// <summary>
        /// <para>Unlike FormatErrorMessage, do not use the format for id.
        /// Output argument message itself.</para>
        /// </summary>
        /// <param name="errorNo"></param>
        /// <param name="kind"></param>
        /// <param name="file"></param>
        /// <param name="line"></param>
        /// <param name="col"></param>
        /// <param name="lineEnd"></param>
        /// <param name="colEnd"></param>
        /// <param name="prefix"></param>
        /// <param name="message"></param>
        /// <returns></returns>
        //------------------------------------------------------------
        static internal string FormatErrorMessageCore(
            string fileName,
            int line,
            int col,
            int lineEnd,
            int colEnd,
            ERRORKIND errorKind,
            string prefix,
            int errorNo,
            string message)
        {
            System.Text.StringBuilder sb = new StringBuilder();
            string errorKindStr          = GetErrorKindString(errorKind);

            //--------------------------------------------------
            // location (file and line, column
            //--------------------------------------------------
            if (!String.IsNullOrEmpty(fileName))
            {
                sb.Append(fileName);

                if (line > 0 && lineEnd > 0)
                {
                    sb.AppendFormat("({0},{1})-({2},{3})", line, col, lineEnd, colEnd);
                }
                else if (line > 0)
                {
                    sb.AppendFormat("({0},{1})", line, col);
                }
            }

            //--------------------------------------------------
            // kind
            // Print ": error prefix####" -- only if not a related symbol location (id == -1)
            //--------------------------------------------------
            if (!String.IsNullOrEmpty(errorKindStr))
            {
                if (sb.Length > 0)
                {
                    sb.Append(": ");
                }

                if (errorNo >= 0)
                {
                    sb.AppendFormat("{0} {1}{2:d4}", errorKindStr, prefix, errorNo);
                }
                else
                {
                    sb.AppendFormat("{0}", errorKindStr);
                }
            }
            else if (errorNo >= 0)
            {
                if (sb.Length > 0)
                {
                    sb.Append(": ");
                }

                sb.AppendFormat("{0}{1:d4}", prefix, errorNo);
            }

            //--------------------------------------------------
            // message
            //--------------------------------------------------
            if (!String.IsNullOrEmpty(message))
            {
                if (sb.Length > 0)
                {
                    sb.Append(": ");
                }

                sb.Append(message);
            }

            return(sb.ToString());
        }