示例#1
0
            int IActiveScriptSite.OnScriptError(IActiveScriptError scriptError)
            {
                string sourceLine = null;

                try
                {
                    scriptError.GetSourceLineText(out sourceLine);
                }
                catch
                {
                    // happens sometimes...
                }
                uint sourceContext;
                int  lineNumber;
                int  characterPosition;

                scriptError.GetSourcePosition(out sourceContext, out lineNumber, out characterPosition);
                lineNumber++;
                characterPosition++;
                System.Runtime.InteropServices.ComTypes.EXCEPINFO exceptionInfo;
                scriptError.GetExceptionInfo(out exceptionInfo);

                string message;

                if (!string.IsNullOrEmpty(sourceLine))
                {
                    message = "Script exception: {1}. Error number {0} (0x{0:X8}): {2} at line {3}, column {4}. Source line: '{5}'.";
                }
                else
                {
                    message = "Script exception: {1}. Error number {0} (0x{0:X8}): {2} at line {3}, column {4}.";
                }
                LastException =
                    new ScriptException(string.Format(message, exceptionInfo.scode, exceptionInfo.bstrSource,
                                                      exceptionInfo.bstrDescription, lineNumber, characterPosition,
                                                      sourceLine))
                {
                    Column      = characterPosition,
                    Description = exceptionInfo.bstrDescription,
                    Line        = lineNumber,
                    Number      = exceptionInfo.scode,
                    Text        = sourceLine
                };
                return(0);
            }
示例#2
0
 int IActiveScriptSite.OnEnterScript()
 {
     LastException = null;
     return(0);
 }