Winform GUI线程 - 是否应该有一个catch块?

时间:2009-08-04 20:14:15

标签: winforms multithreading exception-handling

我在这里阅读: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。这是一个好习惯吗?有人可以告诉我,我是否应该采取不同的做法。感谢。

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:1)

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