1. A system comprising: wrapping code coupled to an error handler of a routine, in which the routine produces an error and the wrapping code wraps the error with relevant information to provide a wrapped exception instance, including to use an exception type hierarchy to preserve information in the wrapped exception instance including an exception type; and an exception manager that receives the wrapped exception instance and determines one or more actions to take based upon the exception type of the wrapped exception instance, wherein the exception manager takes the one or more actions, including to present an interactive dialog associated with the exception type, and wherein the dialog includes an interactive input mechanism, which when selected, results in the exception manager taking further action to restart a program that contains the routine.