C# .NET如何在单独的类/窗体上捕获预先考虑的异常
我有一个非常大的应用程序,我不想重写它 我制作了一个dll/类,记录应用程序主MDI中打开和关闭的每个表单(不向应用程序本身添加超过5行)。 对于这个任务,我使用了IMessageFilter/PreFilterMessage和其他一些技巧 现在,我想在其中添加代码,记录这些表单中捕获的所有异常。(不修改所有内容) 这个DLL一旦完成将被移动到多个项目,因此我不能在主应用程序中编辑太多内容,或使DLL应用程序特定 基本上,当应用程序中某个被处理的异常出现时,我想让我的DLL知道它C# .NET如何在单独的类/窗体上捕获预先考虑的异常,c#,.net,vb.net,error-handling,exception-handling,C#,.net,Vb.net,Error Handling,Exception Handling,我有一个非常大的应用程序,我不想重写它 我制作了一个dll/类,记录应用程序主MDI中打开和关闭的每个表单(不向应用程序本身添加超过5行)。 对于这个任务,我使用了IMessageFilter/PreFilterMessage和其他一些技巧 现在,我想在其中添加代码,记录这些表单中捕获的所有异常。(不修改所有内容) 这个DLL一旦完成将被移动到多个项目,因此我不能在主应用程序中编辑太多内容,或使DLL应用程序特定 基本上,当应用程序中某个被处理的异常出现时,我想让我的DLL知道它 有什么想法吗?
有什么想法吗?(除了“您不能那样做”)您可以使用记录器库。此库提供了轻松的日志记录。因为您提到一个库(或可能是一种库?)而没有链接到它,所以您说它提供了轻松的日志记录,而这不是OP想要的,并且您没有澄清是什么使它“容易”(几乎所有日志库都易于使用)。您是否在主应用程序中引用了上述DLL?您的应用程序中是否有常见的错误处理程序方法?如果是这样,为什么不在所述公共错误处理程序中调用引用的DLL中传递异常对象的方法呢?这种方式不是特定于应用程序的(引用所述dll的每个其他应用程序都可以传递要记录的异常)您可能需要稍加修改。您可能能够以某种方式使用它,但本机无法知道异常是在其他地方引发和捕获的。AppDomain.FirstChanceException不是您要找的吗?关于FirstChanceException的文章:谢谢大家,我将看一看这个第一次机会的异常-我真的更感兴趣的是阅读我们向用户显示的已经捕获的异常。当前应用程序有许多小部件,这些部件是由几个开发人员在过去5年中构建的,因此没有常见的错误处理方法。唯一常见的代码是(try..catch ex as exception)块。希望每次在某个地方触发时都能复制前tostring。其他应用程序可能有一个通用的错误处理程序,但我正试图使其尽可能通用