1

我在我的项目中遇到一个问题,如果我在 App.xaml.cs 的 OnStartup 代码中遇到异常,调试器将首先断点,当我单击继续时,它将在同一位置运行并断点,而不是退出应用程序。

但是,如果我在 App.xaml.cs 中添加 DispatcherUnhandledException 事件处理程序并为事件处理程序,它将按预期工作。

<Application x:Class="WpfApplication8.App"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             DispatcherUnhandledException="App_DispatcherUnhandledException"
             StartupUri="MainWindow.xaml">
    <Application.Resources />
</Application>

应用程序.Xaml.cs

public partial class App : Application
{
    protected override void OnStartup(StartupEventArgs e)
    {
        base.OnStartup(e);
        var b = 4 - 4;
        var a = 100/b;
    }

    void App_DispatcherUnhandledException(object sender, DispatcherUnhandledExceptionEventArgs args)
    {

    } 
}

要重现问题,请从后面的代码中删除事件处理程序。

解决方案详细信息:WPF、.Net 4(包含所有当前更新)、Visual Studio 20013 更新 3。

谁能解释我为什么会得到这种行为?

4

0 回答 0