Ejemplo n.º 1
0
        internal static void OnUnhandledException(object sender, Exception ex)
        {
            try {
                Application app = Application.Current;
                string      unmanaged_report = ex.ToString();

                if (app != null && app.UnhandledException != null)
                {
                    ApplicationUnhandledExceptionEventArgs args = new ApplicationUnhandledExceptionEventArgs(ex, false);
                    try {
                        app.UnhandledException(sender, args);
                        if (args.Handled)
                        {
                            unmanaged_report = null;
                        }
                    } catch (Exception ex2) {
                        Console.WriteLine("Exception caught in Application UnhandledException handler: " + ex2);
                        unmanaged_report = ex2.Message;
                    }
                }
                else
                {
                    Console.WriteLine("Unhandled Exception: " + ex);
                }

                if (unmanaged_report != null)
                {
                    Deployment.Current.EmitError(4004, unmanaged_report);
                }
            } catch {
                // Make this completely safe.
            }
        }