ICoreApplicationUnhandledError.UnhandledErrorDetected Evento
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Ocorre quando há um erro em um manipulador de conclusão assíncrona ou em um manipulador de eventos, que não foi tratado de outra forma pelo código do sistema ou do aplicativo.
// Register
event_token UnhandledErrorDetected(EventHandler<UnhandledErrorDetectedEventArgs> const& handler) const;
// Revoke with event_token
void UnhandledErrorDetected(event_token const* cookie) const;
// Revoke with event_revoker
ICoreApplicationUnhandledError::UnhandledErrorDetected_revoker UnhandledErrorDetected(auto_revoke_t, EventHandler<UnhandledErrorDetectedEventArgs> const& handler) const;
event System.EventHandler<UnhandledErrorDetectedEventArgs> UnhandledErrorDetected;
function onUnhandledErrorDetected(eventArgs) { /* Your code */ }
iCoreApplicationUnhandledError.addEventListener("unhandlederrordetected", onUnhandledErrorDetected);
iCoreApplicationUnhandledError.removeEventListener("unhandlederrordetected", onUnhandledErrorDetected);
- or -
iCoreApplicationUnhandledError.onunhandlederrordetected = onUnhandledErrorDetected;
Event UnhandledErrorDetected As EventHandler(Of UnhandledErrorDetectedEventArgs)
Tipo de evento
Comentários
Esse evento é gerado sempre que há um erro em um manipulador de eventos ou de conclusão assíncrona que atinge o topo da pilha sem ser manipulado pelo código do sistema ou do aplicativo. Seu aplicativo pode inspecionar o erro e escolher se deseja marcar o erro como manipulado (usando a propriedade Handled em dados de evento). Se o erro for marcado como Manipulado, a execução continuará. Se o erro não estiver marcado como Manipulado, o processo será encerrado.
Windows::ApplicationModel::Core::CoreApplication::UnhandledErrorDetected([](auto&&, auto&& args)
{
if (!args.UnhandledError().Handled())
{
try
{
// Take the failure HRESULT and wrap it in a language specific exception.
args.UnhandledError().Propagate();
}
catch (winrt::hresult_error const& e)
{
MyLogger::Log(e.message());
// Since UnhandledError.Propagate marks the error as Handled, rethrow in order to only Log and not Handle.
throw e;
}
}
});
CoreApplication::UnhandledErrorDetected += ref new EventHandler<UnhandledErrorDetectedEventArgs^ >(
[](Platform::Object^ sender, UnhandledErrorDetectedEventArgs^ ea) ->
{
if (!ea->UnhandledError->Handled)
{
try
{
// Take the failure HRESULT and wrap it in a language specific exception
ea->UnhandledError->Propagate();
}
catch (Platform::Exception^ e)
{
MyLogger::Log(e->Message);
// Since UnhandledError.Propagate marks the error as Handled, rethrow in order to only Log and not Handle
throw e;
}
}
});