/// <summary> /// Build the Exception string /// </summary> /// <param name="s"></param> /// <param name="depth"></param> /// <param name="ex"></param> private static void GetExceptionString(ref string s, int depth, Exception ex) { if (ex == null) { s += "EXCEPTIONERR : No Exception found." + Environment.NewLine; } else { if (depth < ExceptionStringBuilderMaxDepth) { if (depth > 0) { s += "INNEREXCEPTION " + depth + Environment.NewLine; } s += "MESSAGE : " + ex.Message + Environment.NewLine; s += "SOURCE : " + ex.Source + Environment.NewLine; s += "TARGETSITE : " + ex.TargetSite + Environment.NewLine; s += "STACKTRACE : " + Environment.NewLine + ex.StackTrace.ToString() + Environment.NewLine; if (ex.InnerException != null) { s += "-------------------------------------------------------" + Environment.NewLine; s += Environment.NewLine; depth++; try { DGUIGHFFormStackTracer.GetExceptionString(ref s, depth, ex.InnerException); } catch { s += "EXCEPTIONERR : There was an error loading this exception." + Environment.NewLine; } } } } }
/// <summary> /// Load the Stack Tracer Form /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void DGUIGHFFormStackTracer_Load(object sender, EventArgs e) { //setup the exception message string exceptionText = ""; exceptionText += "EXCEPTION : " + (m_unhandledException ? "Unhandled" : "Handled") + Environment.NewLine; try { string messageerr = m_ex.Message + "\n"; label_errormessage.Text = "Error: " + messageerr; } catch { } try { DGUIGHFFormStackTracer.GetExceptionString(ref exceptionText, 0, m_ex); } catch { exceptionText += "EXCEPTIONERR : There was an error loading this exception." + Environment.NewLine; } string exceptionDate = String.Format("{0:yyyy-MM-dd HH:mm}", DateTime.UtcNow); string applicationName = Assembly.GetEntryAssembly().GetName().Name.ToString(); string applicationVersion = Assembly.GetEntryAssembly().GetName().Version.ToString(); m_stacktracerMessage += "DATETIME : " + exceptionDate + Environment.NewLine; m_stacktracerMessage += "SENDER : " + m_stacktracerServiceFrom + Environment.NewLine; m_stacktracerMessage += "APPLICATION : " + applicationName + Environment.NewLine; m_stacktracerMessage += "VERSION : " + applicationVersion + Environment.NewLine; m_stacktracerMessage += Environment.NewLine; m_stacktracerMessage += exceptionText; textBox_stacktrace.Text = exceptionText; }