您的位置:首页 > 其它

如何捕获winform程序全局异常?(续)

2013-07-21 09:25 369 查看

前言

上篇文章我提供了一种方案可以供我们捕获单线程程序中的所有未处理异常。但是如果程序是多线程,那么新增线程出现了异常上个方案就无能为力了。本着方案总比问题多的态度,我再给大家提供一种新的方案,供大家参考。

处理多线程程序的全局异常demo

好了下面直接上代码:
using System;
using System.Threading;
using System.Windows.Forms;

namespace TestManyThreadException
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

private void button1_Click(object sender, System.EventArgs e)
{
throw new IndexOutOfRangeException("无效的异常操作");
}

private void button2_Click(object sender, System.EventArgs e)
{
Thread  th = new Thread(new ThreadStart(ThreadStart1));
th.Start();
}
private void ThreadStart1()
{
throw new FormatException("多线程异常,格式异常");
}
}
}

好了,运行上面的代码,直接点击button2,然后就会出现如下界面:

[caption id="attachment_1229" align="alignnone" width="871"]

捕获全局异常2[/caption]

button1的按钮结果就展示了,上篇文章中已经展示过了。这次仅仅是新增了非UI线程的代码而已。

总结

本文提供了,为winform程序捕获全局异常的一个方案,希望对大家有所帮助。如果你有更好的方案欢迎大家在这里提出来我们共同思考。

上面这两篇文章都是我们研究.NET Framework类库的结果,直接那个类提供了那个事件,供我们使用,所以我们以后还要经常研究net Framework的类库。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: