本文介绍了Windows服务的全局异常处理程序?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

有没有办法全局处理Windows服务的异常?在Windows窗体应用程序中类似于以下内容:

  Application.ThreadException + = new ThreadExceptionEventHandler(new ThreadExceptionHandler()ApplicationThreadException) 


解决方案

这是一些非常强大的代码,我们建议人们使用当他们在Windows应用程序中实施时。

 命名空间YourNamespace 
{
static class Program
{

[STAThread]
static void Main()
{
AppDomain.CurrentDomain.UnhandledException + = CurrentDomain_UnhandledException;
Application.ThreadException + = new System.Threading.ThreadExceptionEventHandler(Application_ThreadException);
Application.SetUnhandledExceptionMode(UnhandledExceptionMode.CatchException);
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());
}

static void Application_ThreadException(object sender,System.Threading.ThreadExceptionEventArgs e)
{
HandleException(e.Exception);
}

static void CurrentDomain_UnhandledException(object sender,UnhandledExceptionEventArgs e)
{
HandleException((Exception)e.ExceptionObject);
}

static void HandleException(异常e)
{
//在此处处理您的异常
}

}
}

谢谢,



Phil。


Is there a way to globally handle exceptions for a Windows Service? Something similar to the following in Windows Forms applications:

Application.ThreadException += new ThreadExceptionEventHandler(new ThreadExceptionHandler().ApplicationThreadException);
解决方案

Here is some pretty robust code we advise people to use when they're implementing http://exceptioneer.com in their Windows Applications.

namespace YourNamespace
{
    static class Program
    {

        [STAThread]
        static void Main()
        {
            AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException;
            Application.ThreadException += new System.Threading.ThreadExceptionEventHandler(Application_ThreadException);
            Application.SetUnhandledExceptionMode(UnhandledExceptionMode.CatchException);
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Application.Run(new Form1());
        }

        static void Application_ThreadException(object sender, System.Threading.ThreadExceptionEventArgs e)
        {
            HandleException(e.Exception);
        }

        static void CurrentDomain_UnhandledException(object sender, UnhandledExceptionEventArgs e)
        {
            HandleException((Exception)e.ExceptionObject);
        }

        static void HandleException(Exception e)
        {
            //Handle your Exception here
        }

    }
}

Thanks,

Phil.

这篇关于Windows服务的全局异常处理程序?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

08-06 03:38