当将来自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。谢谢你的时间。
答案 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,那么您将很难在这个项目上工作。