By default, Silverlight will detect and process unhandled exceptions that are raised from any part of the Silverlight application. If you would prefer to perform unhandled exception detection and processing, you can handle the UnhandledException event, which is raised by Application for each thrown exception that is unhandled by application code.
The UnhandledException event handler is passed a ApplicationUnhandledExceptionEventArgs object, which stores a reference to the unhandled exception in its ExceptionObject property. You can use this information to determine whether an exception is recoverable or not.
When you detect and process an unhandled exception and do not want Silverlight to continue processing it, you need to set the Handled property to true. If you leave the Handled property as false when exiting the handler, then the unmanaged exception handling as registered for the onError event takes place for the unhandled exception. An onError handler can also be handled by managed code, if you marshal the handler.