VB ErrorObject是使用try / catch块还是只使用onError / GoTo?

时间:2014-09-03 15:32:18

标签: vb.net vb6 vb6-migration

当将来自VB6的onError / GoTo语句转换为VB.Net时,我被告知要使用try / catch语句。大多数VB6错误块使用Microsoft.VisualBasic.ErrObject来提供错误代码和描述。例如:

 CombinePDF_ERROR:
        lErrorCode = Err
        strErrorSource = Err.Source
        strErrorDescription = Err.Description
        bInProcess = False
        strCombinePDFLastFile1 = strFile1
        strCombinePDFLastFile2 = strFile2
        ChDrive left$(strCurrentDir, 1)
        ChDir strCurrentDir
        Call CombinePDFUIUnload
        Err.Raise lErrorCode, strErrorSource, strErrorDescription
 End Sub

Err(Microsoft.VisualBasic.ErrObject)是否从onError / GoTo语句中获取其信息? lErrorCode,strErrorSource,strErrorDescription在此之前没有给定值。如何在try / catch中复制此功能?捕获异常和messageBox消息?第一次使用VB6或VB.Net。谢谢你的时间。

1 个答案:

答案 0 :(得分:1)

您问题中的特定代码基本上与下面的Catch块类似。 Err.Raise等同于Throw,Err对象大致相当于Exception对象。

Catch ex
  bInProcess = False
  strCombinePDFLastFile1 = strFile1 
  strCombinePDFLastFile2 = strFile2
  ChDrive left$(strCurrentDir, 1)
  ChDir strCurrentDir 
  Call CombinePDFUIUnload
Throw ex

但那只是一个街区。您需要检查每个VB6错误处理程序,计算它的作用,并使用Try Catch计算出最接近的等价物。您需要了解VB6 On Error和Err对象,以及.Net Try ... Catch和Exception对象。

如果您不了解VB6或VB.Net,那么您将很难在这个项目上工作。