Creating and Sending an Exception Report
Copy
Copy information from all visible tabs to the clipboard as a Formatted Exception Report] (see below). The user can then paste & use the textual information/report at their own convenience.
Save
Save information from all visible tabs as a Formatted Exception Report to file. The user will be prompted to select the location and name of the text file to save.
Email
Sends a Formatted Exception Report (see below) to an email address using one of 2 methods - determined by configuration
- SMTP: an e-mail is sent directly to the e-mail address configured Note: the application's configuration must be set with a valid SMTP Server, to and from e-mail addresses, and, where necessary, SMTP authentication username and password.
- Simple MAPI: the user's email client will be launched and automatically populated with a Formatted Exception Report. The subject and recipient (derived from configuration) are used to populate the relevant fields. By using MAPI, the user is able to modify the message and addresses as they normally would when using their email client. Note: For Simple MAPI to work, the user must have a suitable mail client installed (eg Outlook, Windows Mail).
Formatted Exception Report
An exception report includes various information that a developer should find useful in diagnosing a problem - in addition to any custom message the user has provided & the name of the Application which is
configured. The tabs that are configured to be shown/hidden determine what categories of information are included. For example, hiding the AssemblyInfo via
Config.ShowAssembliesTab = false will cause Assembly information to not be included in the formatted report.
The type of information within the categories is not configurable (ie within System Information is Memory/OS/Language/CurrentTimeZone etc) but hopefully generically useful, such that even if there is more than required, it can simply be ignored. We specifically try not to include too much.
An example of The Exception Report (ie formatted/line delimited) is shown below:
-----------------------------
[General Info]
Application: ExceptionReporter Demo App
Version: 2.0.0.0
Region: English (Australia)
Machine: MACHINENAME
User: JohnGruber
Date: 11/07/2010
Time: 12:40 AM
User Explanation:
JohnGruber said "I just pressed Connect and this happened"
-----------------------------
[Exception Info 1]
Top-level Exception
Type: System.IO.IOException
Message: Unable to establish a connection with the Foo bank account service. The error number is #FFF474678.
Source: WinFormsDemoApp
Stack Trace: at WinFormsDemoApp.DemoAppView.AndAnotherOne() in Z:\MyProjects\ExceptionReporter\src\WinFormsDemoApp\DemoAppView.cs:line 110
at WinFormsDemoApp.DemoAppView.CallAnotherMethod() in Z:\MyProjects\ExceptionReporter\src\WinFormsDemoApp\DemoAppView.cs:line 101
at WinFormsDemoApp.DemoAppView.SomeMethod() in Z:\MyProjects\ExceptionReporter\src\WinFormsDemoApp\DemoAppView.cs:line 96
at WinFormsDemoApp.DemoAppView.ShowExceptionReporter(Boolean useConfig) in Z:\MyProjects\ExceptionReporter\src\WinFormsDemoApp\DemoAppView.cs:line 81
Inner Exception 1
Type: System.Exception
Message: This is an Inner Exception message - with a message that is not too small but perhaps it should be smaller
Source:
-----------------------------
[Assembly Info]
mscorlib, Version=2.0.0.0
System.Windows.Forms, Version=2.0.0.0
System, Version=2.0.0.0
ExceptionReporter.WinForms, Version=2.1.0.0
System.Drawing, Version=2.0.0.0
-----------------------------
[System Info]
Operating System
-Microsoft Windows 7 Enterprise
--CodeSet = 1252
--CSDVersion =
--CurrentTimeZone = 600
--FreePhysicalMemory = 1947848
--OSArchitecture = 32-bit
--OSLanguage = 1033
--ServicePackMajorVersion = 0
--ServicePackMinorVersion = 0
--Version = 6.1.7600
Machine
-MOSESMACHINE
--Manufacturer = Gigabyte Technology Co., Ltd.
--Model = P35-DS3L
--TotalPhysicalMemory = 3756515328
--UserName = MachineName\GruberMachine
-----------------------------