Application.DispatcherUnhandledException Application.DispatcherUnhandledException Application.DispatcherUnhandledException Application.DispatcherUnhandledException Event

Определение

Происходит при генерации приложением исключения, которое не обрабатывается.Occurs when an exception is thrown by an application but not handled.

public:
 event System::Windows::Threading::DispatcherUnhandledExceptionEventHandler ^ DispatcherUnhandledException;
public event System.Windows.Threading.DispatcherUnhandledExceptionEventHandler DispatcherUnhandledException;
member this.DispatcherUnhandledException : System.Windows.Threading.DispatcherUnhandledExceptionEventHandler 
Public Custom Event DispatcherUnhandledException As DispatcherUnhandledExceptionEventHandler 

Примеры

В следующем примере показано, как для обработки необработанных исключений путем обработки DispatcherUnhandledException событий.The following example shows how to process unhandled exceptions by handling the DispatcherUnhandledException event.

using System.Windows;
using System.Windows.Threading;

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

Imports System.Windows
Imports System.Windows.Threading

Namespace SDKSample
	Partial Public Class App
		Inherits Application
		Private Sub App_DispatcherUnhandledException(ByVal sender As Object, ByVal e As DispatcherUnhandledExceptionEventArgs)
			' Process unhandled exception

			' Prevent default unhandled exception processing
			e.Handled = True
		End Sub
	End Class
End Namespace

Комментарии

По умолчанию Windows Presentation Foundation перехватывает необработанные исключения, уведомляет пользователей о исключение из диалогового окна (из которой они могут сообщить об исключении) и автоматически завершает работу приложения.By default, Windows Presentation Foundation catches unhandled exceptions, notifies users of the exception from a dialog box (from which they can report the exception), and automatically shuts down an application.

Тем не менее, если приложению для обработки необработанных исключений из централизованного расположения, необходимо обработать DispatcherUnhandledException.However, if an application needs to perform custom unhandled exception processing from a centralized location, you should handle DispatcherUnhandledException.

DispatcherUnhandledException вызывается Application для каждого исключения, которое не было обработано код, выполняемый в основном потоке пользовательского интерфейса.DispatcherUnhandledException is raised by an Application for each exception that is unhandled by code running on the main UI thread.

Если исключение не обработано в одном фоновый поток пользовательского интерфейса (потока с собственным Dispatcher) или фоновом рабочем потоке (поток без Dispatcher), исключение не пересылается в основной поток пользовательского интерфейса.If an exception is not handled on either a background UI thread (a thread with its own Dispatcher) or a background worker thread (a thread without a Dispatcher), the exception is not forwarded to the main UI thread. Следовательно DispatcherUnhandledException не возникает.Consequently, DispatcherUnhandledException is not raised. В этих случаях необходимо написать код, выполнив следующие действия:In these circumstances, you will need to write code to do the following:

  1. Обработка исключений в фоновом потоке.Handle exceptions on the background thread.

  2. Отправка данных исключений в основной поток пользовательского интерфейса.Dispatch those exceptions to the main UI thread.

  3. Rethrow их в основном потоке пользовательского интерфейса без обработки его разрешить DispatcherUnhandledException вызываемого.Rethrow them on the main UI thread without handling them to allow DispatcherUnhandledException to be raised.

Дополнительные сведения см. в разделе потоковая модель Обзор.For more information, see the Threading Model overview.

DispatcherUnhandledException Обработчику события передаются DispatcherUnhandledExceptionEventArgs аргумент, содержащий контекстные сведения об этом исключении, включая:The DispatcherUnhandledException event handler is passed a DispatcherUnhandledExceptionEventArgs argument that contains contextual information regarding the exception, including:

Эти сведения можно использовать для определения, является ли исключение восстановимые.You can use this information to determine whether an exception is recoverable or not. Исправимое исключение может быть FileNotFoundException, например, может быть неустранимое исключение StackOverflowException, например.A recoverable exception might be a FileNotFoundException, for example, while an unrecoverable exception might be a StackOverflowException, for example.

При обработке необработанное исключение из DispatcherUnhandledException, и вы не хотите WPFWPF чтобы продолжить их обработку, вам потребуется задать Handled свойства true.When you process an unhandled exception from DispatcherUnhandledException, and you don't want WPFWPF to continue processing it, you need to set the Handled property to true.

В отличие от других событий, Application вызывает, DispatcherUnhandledException имеют соответствующего незащищенные виртуальной реализацией (OnDispatcherUnhandledException).Unlike the other events that Application raises, DispatcherUnhandledException does not have a matching protected virtual implementation (OnDispatcherUnhandledException). Следовательно, классы, производные от Application всегда необходимо зарегистрировать обработчик событий с DispatcherUnhandledException для обработки необработанных исключений.Consequently, classes that derive from Application must always register an event handler with DispatcherUnhandledException to process unhandled exceptions.

Применяется к