Evaluar y enviar comentarios
Contraer todo/Expandir todo Contraer todo
Esta página es específica de
Microsoft Visual Studio 2008/.NET Framework 3.5

Hay además otras versiones disponibles para:
Biblioteca de clases de .NET Framework
Application..::.DispatcherUnhandledException (Evento)

Actualización: noviembre 2007

Se produce cuando una aplicación inicia una excepción que no se controla.

Espacio de nombres:  System.Windows
Ensamblado:  PresentationFramework (en PresentationFramework.dll)
XMLNS para XAML: http://schemas.microsoft.com/winfx/xaml/presentation
Visual Basic (Declaración)
Public Event DispatcherUnhandledException As DispatcherUnhandledExceptionEventHandler
Visual Basic (Uso)
Dim instance As Application
Dim handler As DispatcherUnhandledExceptionEventHandler

AddHandler instance.DispatcherUnhandledException, handler
C#
public event DispatcherUnhandledExceptionEventHandler DispatcherUnhandledException
Visual C++
public:
 event DispatcherUnhandledExceptionEventHandler^ DispatcherUnhandledException {
    void add (DispatcherUnhandledExceptionEventHandler^ value);
    void remove (DispatcherUnhandledExceptionEventHandler^ value);
}
J#
/** @event */
public void add_DispatcherUnhandledException (DispatcherUnhandledExceptionEventHandler value)
/** @event */
public void remove_DispatcherUnhandledException (DispatcherUnhandledExceptionEventHandler value)
JScript
JScript no admite eventos.
Uso de atributos XAML
<object DispatcherUnhandledException="DispatcherUnhandledExceptionEventHandler" .../>

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

Sin embargo, si una aplicación necesita procesar las excepciones no controladas de manera personalizada desde una ubicación centralizada, es preciso controlar el evento DispatcherUnhandledException.

Application provoca el evento DispatcherUnhandledException para cada excepción que no es controlada por el código que se ejecuta en el principal subproceso de la interfaz de usuario.

Si una excepción no se controla en un subproceso en segundo plano de la interfaz de usuario (UI) (subproceso con su propio Dispatcher) o un subproceso de trabajo en segundo plano (subproceso sin Dispatcher), no se reenvía al principal subproceso de la interfaz de usuario. Por consiguiente, no se provoca el evento DispatcherUnhandledException. En estas circunstancias, necesitará escribir código para que se realicen las siguientes acciones:

  1. Controlar las excepciones en el subproceso en segundo plano.

  2. Enviar esas excepciones al principal subproceso de la interfaz de usuario.

  3. Volver a producirlas en el principal subproceso de la interfaz de usuario sin controlarlas para que se provoque el evento DispatcherUnhandledException.

Para obtener más información, vea la información general sobre Modelo de subprocesos.

Al controlador de eventos DispatcherUnhandledException se le pasa un argumento DispatcherUnhandledExceptionEventArgs que contiene información contextual sobre la excepción, con los siguientes datos:

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

Cuando se procesa una excepción no controlada de DispatcherUnhandledException y se desea que WPF no siga procesándola, es preciso establecer la propiedad Handled en true.

A diferencia de los otros eventos que Application provoca, DispatcherUnhandledException no tiene una implementación virtual protegida correspondiente (OnDispatcherUnhandledException). Por consiguiente, las clases que se derivan de Application siempre deben 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 evento DispatcherUnhandledException.

C#
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;
        }
    }
}

Windows Vista

.NET Framework y .NET Compact Framework no admiten todas las versiones de cada plataforma. Para obtener una lista de las versiones compatibles, vea Requisitos de sistema de .NET Framework.

.NET Framework

Compatible con: 3.5, 3.0
Contenido de la comunidad   ¿Qué es Community Content?
Agregar contenido nuevo RSS  Anotaciones
Processing
© 2009 Microsoft Corporation. Reservados todos los derechos. Términos de uso | Marcas Registradas | Privacidad
Page view tracker