【问题标题】:How to have a global exception handling in dll in C#?如何在 C# 中的 dll 中进行全局异常处理?
【发布时间】:2012-01-11 06:28:47
【问题描述】:

Dll 在 C# 中没有入口点,因此我需要将用于全局异常处理的代码放在一个地方,因为这些 dll 在 exe 中被引用,并且都有 try catch 但由于它正在崩溃而出现一些错误并且为了确定我们正在尝试创建故障转储。任何人都可以建议这样做是可行的解决方案还是必须做其他任何事情。

谢谢。

【问题讨论】:

  • 是的,将异常处理代码放在实际执行代码的可执行文件中。
  • 我们已经尝试过了,Application.ThreadException 也在 program.cs 中的 exe 的 Main 中,它没有触及,我们为 dll 中的错误获得了一个默认的 dotnet 窗口,并要求我们继续忽略错误。
  • 请务必阅读并关注the documentation 以获取Application.ThreadException。请记住,在附加调试器的情况下运行应用程序会更改一些有关默认异常处理的内容。

标签: c# .net dll exception-handling


【解决方案1】:

正如 Cody 所说,您应该将对该 dll 的每个调用都包含在 try catch 块中以处理异常。您的陈述有点令人困惑,我假设您已经在使用 try catch 块。如果是这种情况,您也可以处理全局异常,以确保不是 exe 本身引发异常。

例如,在 Win Form 应用程序中,您可以处理 Application.ThreadException 以捕获全局异常。您也可以尝试处理AppDomain.Unhandled 事件

【讨论】:

  • 我已经尝试过了,但是有一些异常没有被 try catch 捕获并导致应用程序崩溃。如果它被抓住了,我们正在处理它,如果没有被抓住是一个问题。
  • 也许您在非托管代码中遇到异常。这会导致异常导致系统崩溃。
猜你喜欢
  • 2011-05-20
  • 1970-01-01
  • 2012-12-03
  • 1970-01-01
  • 2015-08-09
  • 1970-01-01
  • 2019-04-17
  • 2018-03-06
  • 2019-07-18
相关资源
最近更新 更多