场景是这样的:我想在某个Windows Form程序的Program类中统一处理所有未捕获的异常: static class Program
{
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main()
{
try
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new LoginPoint());
}
catch (Exception myException)
{
//向日志文件记录异常
}
}
}
然后经过测试,发现某些多线程操作的地方异常没法到这里统一处理(多线程的操作用的是BackgroundWorker): private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
{
//DOWORK
throw new Exception("TEST!");
} private void backgroundWorker1_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
{
if (e.Error != null)
{
throw new Exception("I GOT TEST");
}
//TODO
}
我的目的是想让异常“I GOT TEST”能在Program类中处理,但“不调试运行”中还是跳出了系统的异常框,也就是没能成功地在Program类中处理。请问大家有什么看法,是否能帮帮我。异常多线程Windows
{
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main()
{
try
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new LoginPoint());
}
catch (Exception myException)
{
//向日志文件记录异常
}
}
}
然后经过测试,发现某些多线程操作的地方异常没法到这里统一处理(多线程的操作用的是BackgroundWorker): private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
{
//DOWORK
throw new Exception("TEST!");
} private void backgroundWorker1_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
{
if (e.Error != null)
{
throw new Exception("I GOT TEST");
}
//TODO
}
我的目的是想让异常“I GOT TEST”能在Program类中处理,但“不调试运行”中还是跳出了系统的异常框,也就是没能成功地在Program类中处理。请问大家有什么看法,是否能帮帮我。异常多线程Windows
答案:
http://stackoverflow.com/questions/16084155/how-to-handle-the-exception-of-backgroundworker-in-the-main-process
也可以看看这个.