In our work we have found it helpful to have a few custom exception objects primarily to get more insight into the nature of an error in order to increase the supportability of an application. As such, we have created a custom library of exception classes available under an MIT open source license agreement on Nuget under SoundPower.ErrorTracking or simply at https://www.nuget.org/packages/SoundPower.ErrorTracking/.

The main exception object is an enhancement to the standard exception class. It allows for the tracking of multiple values present at the time of the exception (as defined by the developer) while also automatically tracking the source machine and context of work, It provides a method that readily translates the properties and data tracked by the exception – including inner exceptions – into a dictionary easily consumed by most error logging mechanisms.