应该在VB.NET中使用什么错误处理

时间:2010-06-15 08:00:31

标签: vb.net error-handling

VB.NET中应该使用什么错误处理?

是否应该使用“On Error Goto ErrorHandler ... Exit Sub ErrHandler ... End Sub”模式,还是应该使用“try { ... } catch { ... } finally { ... }”模式?

4 个答案:

答案 0 :(得分:6)

“尝试{...}抓住{...}终于{...}”模式。

C#

try
{
// Do Something that may go wrong
}
catch (Exception ex)
{
//Do something with the error
}
finally
{
//Cleanup
}

VB

Try

// Do Something that may go wrong

Catch ex  as Exception

//Do something with the error

Finally

//Cleanup

End Try

答案 1 :(得分:1)

我能想到的最明显的原因是要避开On Error GoTo...,必须是:

  1. On Error GoTo不区分类型的例外情况。
  2. On Error GoTo未提供与Try / Catch / Finally一样多的结构(例如,在其中嵌套一个Try / Catch块另一个)。
  3. On Error GoToFinally(我知道)无对应。
  4. 我确信在很多情况下,聪明地使用On Error GoTo可能会模仿VB.NET Try / Catch / Finally功能中内置的行为。但那有什么意义呢?

答案 2 :(得分:0)

On Error Goto ErrorHandler ... Exit Sub ErrHandler ... End Sub来自VB6天。绝对与Try... Catch... Finally...

一起使用

答案 3 :(得分:0)

一点背景

'On Error Goto'是在.Net日之前在VB 6中完成工作的方式。 VB编译器仍然允许这样,因此您可以轻松地将旧的VB代码移植到VB.Net。 VB.Net可能是唯一支持此功能的.Net语言。

'Try Catch Finally'是.Net的做事方式,更灵活,允许你捕获,包装和重新抛出异常。它允许在使用不同语言编写的组件之间更容易地进行互操作,并且当您执行更复杂的错误处理时更加可读,因为您没有goto。

相关问题