Analyzes the exceptions. This builds an {@link ExceptionDescription} for theexception. It also looks for a non-null {@link Throwable}property. If one exists, then a second {@link ExceptionDescription} is created. This continues until no more nested exceptions can be found.
The description includes a set of name/value properties (as {@link ExceptionProperty}) object. This list contains all non-null properties that are not, themselves, {@link Throwable}.
The name is the display name (not the logical name) of the property. The value is the toString()
value of the property. Only properties defined in subclasses of {@link Throwable} are included.
A future enhancement will be to alphabetically sort the properties by name.