【问题标题】:Winform GUI Thread - Should there be a single catch block?Winform GUI 线程 - 应该有一个 catch 块吗?
【发布时间】:2010-11-16 19:30:01
【问题描述】:

我在这里读过:CodeProject 以及其他一些每个线程应该有一个 catch 块的地方。在winforms的上下文中我不太了解这一点。在winforms的情况下也是如此吗?我知道工作线程应该有一个 catch 块。但是,我在 UI(主)线程上有多个 catch 块,这些块总是最终调用我的私有 HandleError 方法传递异常。然后,此方法负责如何向用户显示错误。所以,假设我可能有一个try/catch block in button1_click handler and another try/catch block in another button2_click handler。这是一个好习惯吗?有人可以告诉我是否应该做一些不同的事情。谢谢。

【问题讨论】:

  • 添加...我知道可以使用每个线程和应用程序域的全局挂钩来捕获未处理的异常。
  • 我的收获:有一个用于工作线程的单个 try/catch 块。主线程可以有多个 try/catch 块。

标签: winforms multithreading exception-handling


【解决方案1】:

我认为您应该将该规则理解为“每个线程应该至少有一个 single 捕获块”。每个线程,当然还有主线程,都应该在适当的地方使用 catch 块。

【讨论】:

    【解决方案2】:

    我不知道使用 try/catch 块的任何真正“规则”。虽然我不喜欢一个大的尝试块。在您期望可能出现异常的代码点/行中明智地使用它们。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-07-26
      • 2020-04-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-11-15
      • 1970-01-01
      相关资源
      最近更新 更多