private void TvExceptionView_AfterSelect(object sender, TreeViewEventArgs e) { if (tvExceptionView.SelectedNode != null) { ExceptionTreeNode tn = (ExceptionTreeNode)tvExceptionView.SelectedNode; lblExeptionType.Text = "Exception Type: " + tn.Exception.GetType().Name; lblHResult.Text = "HResult: " + tn.Exception.HResult; lblHelpLink.Text = "Help Link: " + (tn.Exception.HelpLink ?? "null"); lblSource.Text = "Source: " + tn.Exception.Source; lblTargetSite.Text = "Target Site: " + tn.Exception.TargetSite?.Name; rtbCallStack.Text = tn.Exception.StackTrace ?? "null"; rtbMessage.Text = tn.Exception.Message ?? "null"; } }
private static TreeNode ExceptionToTreeNode(Exception ex) { TreeNode tn = new ExceptionTreeNode(ex); if (ex is AggregateException ag) { foreach (Exception agInnerException in ag.InnerExceptions) { tn.Nodes.Add(ExceptionToTreeNode(agInnerException)); } } else if (ex.InnerException != null) { tn.Nodes.Add(ExceptionToTreeNode(ex.InnerException)); } return(tn); }