ICoreApplicationUnhandledError.UnhandledErrorDetected Evento
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Se produce cuando se produce un error en un controlador de finalización asincrónica o en un controlador de eventos que, de lo contrario, no se ha controlado por el código del sistema o de la aplicación.
// 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
Comentarios
Este evento se genera cada vez que hay un error en una finalización asincrónica o un controlador de eventos que llega a la parte superior de la pila sin ser controlado por el código del sistema o de la aplicación. La aplicación puede inspeccionar el error y elegir si se marca el error como controlado (mediante la propiedad Handled en los datos del evento). Si el error se marca como Controlado, la ejecución continuará. Si el error no está marcado como Controlado, se finalizará el proceso.
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;
}
}
});