Improvement for error reporting

GieltjEGieltjE Posts: 22 Bronze 1
edited November 2, 2013 4:44AM in SmartAssembly
The error reporting form doesn't send the exception data, below is a modified snippet that adds this data (in most cases this contains a lot of useful data (for instance mysql errors will add the error code), and when calling ExceptionReporting.Report it allows for easy adding of environment variables).
readonly List<string> _keys = new List<string>();
	    readonly List<string> _values = new List<string>();

        public ExceptionReportingForm(UnhandledExceptionHandler unhandledExceptionHandler, ReportExceptionEventArgs reportExceptionEventArgs) : this()
		{
			int newHeight = Height;

            try
            {
                _values.AddRange(from object value in reportExceptionEventArgs.Exception.Data.Values select value.ToString());
                _keys.AddRange(from object key in reportExceptionEventArgs.Exception.Data.Keys select key.ToString());

                int countOnlyOnce = _keys.Count;
                for (int i = 0; i < countOnlyOnce; i++)
                {
                    reportExceptionEventArgs.AddCustomProperty(_keys[i], _values[i]);
                }
            }
            catch (Exception) {}

Why isn't something like this added to the defualt exception handlers?

Comments

  • Hi there,

    Thank you for your post!

    We've got a feature request to add the exception data to the default exception reporting templates (with internal reference SA-264) and I've +1'd this request with your information--thank you for your feedback!

    Many thanks as well for sharing your solution for this. :)

    Jessica Ramos | Product Support Engineer | Redgate Software

    Have you visited our Help Center?


  • GieltjEGieltjE Posts: 22 Bronze 1
    One of the other interesting things you can do with this is make the exception reporter behave differently when you set a certain value.
    For example I used it to be able to send some reports silently without user interaction (Visible = false; ShowInTaskbar = false; and some other small hacks needed).
Sign In or Register to comment.