Microsoft.Scripting.Interpreter.InterpretedFrame.SaveTraceToException C# (CSharp) 메소드

SaveTraceToException() 개인적인 메소드

private SaveTraceToException ( Exception exception ) : void
exception Exception
리턴 void
        internal void SaveTraceToException(Exception exception) {
            if (exception.Data[typeof(InterpretedFrameInfo)] == null) {
                exception.Data[typeof(InterpretedFrameInfo)] = new List<InterpretedFrameInfo>(GetStackTraceDebugInfo()).ToArray();
            }
        }

Usage Example

예제 #1
0
        public void Run(InterpretedFrame frame)
        {
            while (true)
            {
                try {
                    var instructions = _instructions.Instructions;
                    int index        = frame.InstructionIndex;
                    while (index < instructions.Length)
                    {
                        index += instructions[index].Run(frame);
                        frame.InstructionIndex = index;
                    }
                    return;
                } catch (Exception exception) {
                    frame.SaveTraceToException(exception);
                    frame.FaultingInstruction = frame.InstructionIndex;
                    ExceptionHandler handler;
                    frame.InstructionIndex += GotoHandler(frame, exception, out handler);

                    if (handler == null || handler.IsFault)
                    {
                        // run finally/fault blocks:
                        Run(frame);

                        // a finally block can throw an exception caught by a handler, which cancels the previous exception:
                        if (frame.InstructionIndex == RethrowOnReturn)
                        {
                            throw;
                        }
                        return;
                    }

                    // stay in the current catch so that ThreadAbortException is not rethrown by CLR:
                    var abort = exception as ThreadAbortException;
                    if (abort != null)
                    {
                        _anyAbortException        = abort;
                        frame.CurrentAbortHandler = handler;
                        Run(frame);
                        return;
                    }
                    exception = null;
                }
            }
        }
All Usage Examples Of Microsoft.Scripting.Interpreter.InterpretedFrame::SaveTraceToException