我在WPF窗口对话框中有几个自定义用户控件,可能会抛出异常。我想要做的是当其中一个用户控件抛出异常时,仅清除该窗口对话框。但是,这些控件处理它们自己的click事件,所以我找不到任何地方将它们从窗口本身包装到try-catch中。
我能想到的唯一可能的解决方法是在我的用户控件中实现事件SomethingWentWrong,并在我的WPF窗口中订阅它。然而,在我看来,这似乎是一种非常丑陋的做事方式。
还有更好的选择吗?
答案 0 :(得分:1)
没有全局方法可以在单个Window
内轻松捕获异常。
您可以订阅Application.DispatcherUnhandledException
,这将为您提供一种方法来捕获Dispatcher
上发生的异常。这将处理大多数典型的用户界面“事件”,但是在应用程序范围内。