ICoreApplicationUnhandledError.UnhandledErrorDetected Event
Definition
Important
Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.
Occurs when there is an error in an async completion handler, or an event handler, that wasn't otherwise handled by system or app code.
// 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)
Event Type
Remarks
This event is raised whenever there is an error in an async completion or event handler that reaches top of stack without being handled by system or app code. Your app can inspect the error and choose whether to mark the error as handled (using the Handled property in event data). If the error is marked Handled, execution will continue. If the error is not marked Handled, the process will be terminated.
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;
}
}
});