WPF教程

WPF处理没有注意到的异常--WPF教程

时间:2013/7/23 22:22:12  作者:WPF之家  来源:http://www.wpf123.com  查看:110  评论:0
内容摘要: <Window x:Class="HandlingAnUnhandledException.MainWindow"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/present...

 

<Window x:Class="HandlingAnUnhandledException.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525">
<StackPanel>
<Button Click="OnClick">
<Button.Template>
<ControlTemplate>
<Grid>
<Ellipse Height="100" Width="250" Fill="Pink"/>
<TextBlock Text="Button to Throw Exception by DebugLZQ" VerticalAlignment="Center" HorizontalAlignment="Center"/>
</Grid>
</ControlTemplate>
</Button.Template>
</Button>
</StackPanel>
</Window>

在Button的Click事件中抛出个异常

private void OnClick(object sender, RoutedEventArgs e)
{
throw new InvalidOperationException("Something has gone wrong.");
}

如果,我们Ctrl+F5运行这个程序,点击按钮,程序就崩溃了。
WPF如何解决这个问题呢?

2.WPF处理这种异常的方法

在App.xaml.cs中订阅DispatcherUnhandledException事件,并添加相应的事件处理。

App.xaml.cs如下:

public partial class App : Application
{
public App()
{
DispatcherUnhandledException += App_DispatcherUnhandledException;
}

void App_DispatcherUnhandledException(object sender, System.Windows.Threading.DispatcherUnhandledExceptionEventArgs e)
{
MessageBox.Show("Error encountered! Please contact support."+ Environment.NewLine + e.Exception.Message);
//Shutdown(1);
e.Handled = true;
}
}

标签:处理 注意 注意到 异常 

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。本文出自“wpf之家”,请务必保留此出处:http://www.wpf123.com

相关评论
Copyright © 2009-2014 WPF之家(http://www.wpf123.com/) All rights reserved
 Powered by WPF之家
闽ICP备10004896号