示例#1
0
        private static void RenderException(XElement ex)
        {
            if (ex.Name == "innerexception")
            {
                ex = ex.Elements().Single();
            }

            var exType           = ex.Elements().Single(e => e.Name == "type").Value;
            var exMessage        = ex.Elements().Single(e => e.Name == "message").Value;
            var exStacktrace     = ex.Elements().Single(e => e.Name == "stacktrace").Value;
            var exInnerexception = ex.Elements().Single(e => e.Name == "innerexception");

            var exceptionRenderer = new TableRenderer("Exception details:", new[] { new Tuple <string, int>(exType, Console.WindowWidth - 6), });

            TableRenderer.SplitString(exMessage, Console.WindowWidth - 9).ToList().ForEach(l => exceptionRenderer.RenderRow(new[] { l }));
            TableRenderer.SplitString(exStacktrace, Console.WindowWidth - 9).ToList().ForEach(l => exceptionRenderer.RenderRow(new[] { l }));

            if (string.IsNullOrEmpty(exInnerexception.Value))
            {
                return;
            }

            Console.WriteLine();
            Console.WriteLine("Inner exception:");
            RenderException(exInnerexception);
        }
示例#2
0
        private static void RenderException(UnhandledException ex)
        {
            var exceptionRenderer = new TableRenderer("Exception details:", new[] { new Tuple <string, int>(ex.Source, Console.WindowWidth - 6), });

            TableRenderer.SplitString(ex.Message, Console.WindowWidth - 9).ToList().ForEach(l => exceptionRenderer.RenderRow(new[] { l }));
            TableRenderer.SplitString(ex.StackTrace, Console.WindowWidth - 9).ToList().ForEach(l => exceptionRenderer.RenderRow(new[] { l }));

            if (!string.IsNullOrEmpty(ex.InnerExMessage))
            {
                TableRenderer.SplitString(ex.InnerExMessage, Console.WindowWidth - 9).ToList().ForEach(l => exceptionRenderer.RenderRow(new[] { l }));
            }
        }