Este artículo se tradujo automáticamente. Para ver el artículo en inglés, active la casilla Inglés. Además, puede mostrar el texto en inglés en una ventana emergente si mueve el puntero del mouse sobre el texto.
Traducción
Inglés

Evento Application.DispatcherUnhandledException

 

Publicado: noviembre de 2016

Se produce cuando una excepción es producida por una aplicación pero no controla.

Espacio de nombres:   System.Windows
Ensamblado:  PresentationFramework (en PresentationFramework.dll)

public event DispatcherUnhandledExceptionEventHandler DispatcherUnhandledException

De forma predeterminada, Windows Presentation Foundation (WPF) detecta las excepciones no controladas, notifica a los usuarios de la excepción de un cuadro de diálogo (desde el que puede notificar la excepción) y una aplicación se cierra automáticamente.

Sin embargo, si una aplicación necesita realizar el procesamiento de excepciones no controladas personalizado desde una ubicación centralizada, se debe controlar DispatcherUnhandledException.

DispatcherUnhandledException se genera mediante un Application para cada excepción controlada por el código que se ejecuta en el subproceso de interfaz de usuario principal.

Si una excepción no se controla en ya sea un fondo interfaz de usuario (UI) subprocesos (un subproceso con su propio Dispatcher) o un subproceso de trabajo de segundo plano (un subproceso sin un Dispatcher), la excepción no se reenvía a los principales IU subproceso. En consecuencia, DispatcherUnhandledException no se produce. En estas circunstancias, necesitará escribir código para hacer lo siguiente:

  1. Controlar excepciones en el subproceso en segundo plano.

  2. Enviar esas excepciones al principal IU subproceso.

  3. Volver a ellas en los principales IU subproceso sin control de permitir DispatcherUnhandledException que se genera.

Para obtener más información, consulte el modelo de subprocesamiento información general.

El DispatcherUnhandledException controlador de eventos se pasa un DispatcherUnhandledExceptionEventArgs argumento que contiene información contextual sobre la excepción, incluidos:

Puede utilizar esta información para determinar si una excepción es recuperable o no. Una excepción recuperable podría ser un FileNotFoundException, por ejemplo, mientras que una excepción irrecuperable podría ser un StackOverflowException, por ejemplo.

Cuando se procesa una excepción no controlada de DispatcherUnhandledException, y no desea WPF para continuar el procesamiento, debe establecer el Handled propiedad true.

A diferencia de otros eventos que Application provoca, DispatcherUnhandledException no tienen una coincidencia protegido implementación virtual (OnDispatcherUnhandledException). Por consiguiente, las clases que derivan de Application siempre se debe registrar un controlador de eventos con DispatcherUnhandledException para procesar las excepciones no controladas.

En el ejemplo siguiente se muestra cómo procesar las excepciones no controladas administrando el DispatcherUnhandledException eventos.

using System.Windows; // Application
using System.Windows.Threading; // DispatcherUnhandledExceptionEventArgs

namespace SDKSample
{
    public partial class App : Application
    {
        void App_DispatcherUnhandledException(object sender, DispatcherUnhandledExceptionEventArgs e)
        {
            // Process unhandled exception
            // Prevent default unhandled exception processing
            e.Handled = true;
        }
    }
}

.NET Framework
Disponible desde 3.0
Volver al principio
Mostrar: