C# WPF Dispatcher.UnhandledException fails to catch exception
Inherited WPF application sets up Dispatcher.UnhandledException in App.xaml.cs:
public App() : base()
{
this.Dispatcher.UnhandledException += OnDispatcherUnhandledException;
}
Except am occasionally getting "program has stopped working" without OnDispatcherUnhandledException being called.
As per much discussion in other threads, am adding the following:
AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException;
but do not understand how that helps.
Can anyone explain the difference between Dispatcher and CurrentDomain UnhandledException?
c# wpf unhandled-exception
add a comment |
Inherited WPF application sets up Dispatcher.UnhandledException in App.xaml.cs:
public App() : base()
{
this.Dispatcher.UnhandledException += OnDispatcherUnhandledException;
}
Except am occasionally getting "program has stopped working" without OnDispatcherUnhandledException being called.
As per much discussion in other threads, am adding the following:
AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException;
but do not understand how that helps.
Can anyone explain the difference between Dispatcher and CurrentDomain UnhandledException?
c# wpf unhandled-exception
add a comment |
Inherited WPF application sets up Dispatcher.UnhandledException in App.xaml.cs:
public App() : base()
{
this.Dispatcher.UnhandledException += OnDispatcherUnhandledException;
}
Except am occasionally getting "program has stopped working" without OnDispatcherUnhandledException being called.
As per much discussion in other threads, am adding the following:
AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException;
but do not understand how that helps.
Can anyone explain the difference between Dispatcher and CurrentDomain UnhandledException?
c# wpf unhandled-exception
Inherited WPF application sets up Dispatcher.UnhandledException in App.xaml.cs:
public App() : base()
{
this.Dispatcher.UnhandledException += OnDispatcherUnhandledException;
}
Except am occasionally getting "program has stopped working" without OnDispatcherUnhandledException being called.
As per much discussion in other threads, am adding the following:
AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException;
but do not understand how that helps.
Can anyone explain the difference between Dispatcher and CurrentDomain UnhandledException?
c# wpf unhandled-exception
c# wpf unhandled-exception
asked Nov 26 '18 at 19:17
Frank NatoliFrank Natoli
236
236
add a comment |
add a comment |
2 Answers
2
active
oldest
votes
It looks like you have exceptions occurring in another thread. You can debug CurrentDomain_UnhandledException to get an idea of where they're coming from. Dispatcher.UnhandledException handles exceptions on the specific UI thread associated with that Dispatcher. If you only have one UI thread (typically), it should handle those exceptions. If you have exceptions in other threads (most likely non-UI threads), those can be handled with AppDomain.CurrentDomain.UnhandledException.
http://blogs.microsoft.co.il/arik/2011/08/28/order-in-chaos-handling-unhandled-exceptions-in-a-wpf-application/
Since I don't yet have a stack trace, I don't know where the exception is originating. But I guess it's a reasonable inference that it's NOT in the UI thread? Hence implementing AppDomain.CurrentDomain.UnhandledException might catch it? Thanks.
– Frank Natoli
Nov 26 '18 at 19:45
add a comment |
You are likely getting any of the few exceptions that cannot be caught. E.g. StackOverflowException
, ThreadAbortException
and AccessViolationException
(often from faulty native code).
Read this answer for more information.
add a comment |
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53487659%2fc-sharp-wpf-dispatcher-unhandledexception-fails-to-catch-exception%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
2 Answers
2
active
oldest
votes
2 Answers
2
active
oldest
votes
active
oldest
votes
active
oldest
votes
It looks like you have exceptions occurring in another thread. You can debug CurrentDomain_UnhandledException to get an idea of where they're coming from. Dispatcher.UnhandledException handles exceptions on the specific UI thread associated with that Dispatcher. If you only have one UI thread (typically), it should handle those exceptions. If you have exceptions in other threads (most likely non-UI threads), those can be handled with AppDomain.CurrentDomain.UnhandledException.
http://blogs.microsoft.co.il/arik/2011/08/28/order-in-chaos-handling-unhandled-exceptions-in-a-wpf-application/
Since I don't yet have a stack trace, I don't know where the exception is originating. But I guess it's a reasonable inference that it's NOT in the UI thread? Hence implementing AppDomain.CurrentDomain.UnhandledException might catch it? Thanks.
– Frank Natoli
Nov 26 '18 at 19:45
add a comment |
It looks like you have exceptions occurring in another thread. You can debug CurrentDomain_UnhandledException to get an idea of where they're coming from. Dispatcher.UnhandledException handles exceptions on the specific UI thread associated with that Dispatcher. If you only have one UI thread (typically), it should handle those exceptions. If you have exceptions in other threads (most likely non-UI threads), those can be handled with AppDomain.CurrentDomain.UnhandledException.
http://blogs.microsoft.co.il/arik/2011/08/28/order-in-chaos-handling-unhandled-exceptions-in-a-wpf-application/
Since I don't yet have a stack trace, I don't know where the exception is originating. But I guess it's a reasonable inference that it's NOT in the UI thread? Hence implementing AppDomain.CurrentDomain.UnhandledException might catch it? Thanks.
– Frank Natoli
Nov 26 '18 at 19:45
add a comment |
It looks like you have exceptions occurring in another thread. You can debug CurrentDomain_UnhandledException to get an idea of where they're coming from. Dispatcher.UnhandledException handles exceptions on the specific UI thread associated with that Dispatcher. If you only have one UI thread (typically), it should handle those exceptions. If you have exceptions in other threads (most likely non-UI threads), those can be handled with AppDomain.CurrentDomain.UnhandledException.
http://blogs.microsoft.co.il/arik/2011/08/28/order-in-chaos-handling-unhandled-exceptions-in-a-wpf-application/
It looks like you have exceptions occurring in another thread. You can debug CurrentDomain_UnhandledException to get an idea of where they're coming from. Dispatcher.UnhandledException handles exceptions on the specific UI thread associated with that Dispatcher. If you only have one UI thread (typically), it should handle those exceptions. If you have exceptions in other threads (most likely non-UI threads), those can be handled with AppDomain.CurrentDomain.UnhandledException.
http://blogs.microsoft.co.il/arik/2011/08/28/order-in-chaos-handling-unhandled-exceptions-in-a-wpf-application/
answered Nov 26 '18 at 19:35
bcwhimsbcwhims
802510
802510
Since I don't yet have a stack trace, I don't know where the exception is originating. But I guess it's a reasonable inference that it's NOT in the UI thread? Hence implementing AppDomain.CurrentDomain.UnhandledException might catch it? Thanks.
– Frank Natoli
Nov 26 '18 at 19:45
add a comment |
Since I don't yet have a stack trace, I don't know where the exception is originating. But I guess it's a reasonable inference that it's NOT in the UI thread? Hence implementing AppDomain.CurrentDomain.UnhandledException might catch it? Thanks.
– Frank Natoli
Nov 26 '18 at 19:45
Since I don't yet have a stack trace, I don't know where the exception is originating. But I guess it's a reasonable inference that it's NOT in the UI thread? Hence implementing AppDomain.CurrentDomain.UnhandledException might catch it? Thanks.
– Frank Natoli
Nov 26 '18 at 19:45
Since I don't yet have a stack trace, I don't know where the exception is originating. But I guess it's a reasonable inference that it's NOT in the UI thread? Hence implementing AppDomain.CurrentDomain.UnhandledException might catch it? Thanks.
– Frank Natoli
Nov 26 '18 at 19:45
add a comment |
You are likely getting any of the few exceptions that cannot be caught. E.g. StackOverflowException
, ThreadAbortException
and AccessViolationException
(often from faulty native code).
Read this answer for more information.
add a comment |
You are likely getting any of the few exceptions that cannot be caught. E.g. StackOverflowException
, ThreadAbortException
and AccessViolationException
(often from faulty native code).
Read this answer for more information.
add a comment |
You are likely getting any of the few exceptions that cannot be caught. E.g. StackOverflowException
, ThreadAbortException
and AccessViolationException
(often from faulty native code).
Read this answer for more information.
You are likely getting any of the few exceptions that cannot be caught. E.g. StackOverflowException
, ThreadAbortException
and AccessViolationException
(often from faulty native code).
Read this answer for more information.
answered Nov 26 '18 at 19:41
l33tl33t
6,1731259129
6,1731259129
add a comment |
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53487659%2fc-sharp-wpf-dispatcher-unhandledexception-fails-to-catch-exception%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown