C# 集合_()的.Net等效项 是否有一个与C++意外事件()/StInEngEnter()功能相当的.NET?

C# 集合_()的.Net等效项 是否有一个与C++意外事件()/StInEngEnter()功能相当的.NET?,c#,.net,exception-handling,.net-2.0,unhandled,C#,.net,Exception Handling,.net 2.0,Unhandled,编辑:对不起--我之前省略了一些细节: 语言:C#2.0 我有一些遗留应用程序似乎在某处抛出一些未处理的异常。我只是想做点什么来阻止客户的痛苦,直到我能找到问题的真正根源。在C++中,根据我所知,当StIyNavaDead()指向的函数调用主程序时,调用了另一个未处理的异常。因此,我提出了关于.net等效功能的问题 根据应用程序的类型,有3种可能的情况可用于处理未处理的异常: 对于windows窗体应用程序,将事件处理程序挂接到 对于命令行应用程序,将事件处理程序挂接到 对于ASP.NET应用程

编辑:对不起--我之前省略了一些细节:

语言:C#2.0


我有一些遗留应用程序似乎在某处抛出一些未处理的异常。我只是想做点什么来阻止客户的痛苦,直到我能找到问题的真正根源。在C++中,根据我所知,当StIyNavaDead()指向的函数调用主程序时,调用了另一个未处理的异常。因此,我提出了关于.net等效功能的问题

根据应用程序的类型,有3种可能的情况可用于处理未处理的异常:

  • 对于windows窗体应用程序,将事件处理程序挂接到
  • 对于命令行应用程序,将事件处理程序挂接到
  • 对于ASP.NET应用程序,在Global.asax中创建:

    受保护的无效应用程序\u错误(对象发送方,事件参数e)


  • 免责声明:我不是C++开发人员,但是从我读到的,这应该回答你的问题。

    这些处理程序应该在混合模式应用程序中捕获大多数意想不到的异常。
    private delegate long UnhandledExceptionFilter(IntPtr exception);
    
    [DllImport("KERNEL32.DLL", SetLastError = true)]
    private static extern IntPtr SetUnhandledExceptionFilter([MarshalAs(UnmanagedType.FunctionPtr)] UnhandledExceptionFilter filter);
    
    // put these in your bootstrapper
    AppDomain.CurrentDomain.UnhandledException += CurrentDomainUnhandledException;
    Application.ThreadException += ApplicationThreadException;
    SetUnhandledExceptionFilter(UnhandledExceptionFilter);
    
    void CurrentDomainUnhandledException(object sender, UnhandledExceptionEventArgs e)
    {
        ...
    }
    
    void ApplicationThreadException(object sender, ThreadExceptionEventArgs e)
    {
        ...
    }
    
    long UnhandledExceptionFilter(IntPtr exception)
    {
        ....
    }
    

    你能更详细地描述一下你想要达到的总体效果吗?很可能.NET中惯用的方式不会完全反映意外/设置意外。是的,乔恩,我知道你在说什么。在我发布我的问题后,我意识到我在细节上略过了一些。我会适当地编辑。