Чтобы добавить больше деталей к комментарию DaveInCraz, вот два примера, показывающие, как вы можете перенести VB6 в VB.NET:
Сначала давайте начнем с примера VB6.По сути это подпрограмма с обработчиком ошибок, имеющая дело с несколькими типами ошибок.
Sub aSubToMigrate
On Error GoTo ErrorHandler
' Down below there lines of code
ErrorHandler:
'continue if it is a duplicate key
Select Case Err.Number
Case ERROR_CODE_1:
' Error 1 case processing
' [...]
Case ERROR_CODE_2:
' Error 2 case processing
' [...]
Case Else:
' Generic error case processing
End Select
Resume Next
End Sub
Управление ошибками в VB.NET имеет дело с выбрасыванием объекта исключения и Try-Catch
блоками.Вы можете обрабатывать отдельно каждый тип ошибки, написав блок Catch
для данного типа ошибки, как показано ниже:
Sub aMigratedSub
Try
' Down below there lines of code
Catch ex As ExceptionType1
' Error 1 case processing
Catch ex As ExceptionType2
' Error 2 case processing
Catch ex As Exception
' Generic error case processing (Exception is the root class)
End Try
' Code executed after (no need of Resume Next so)
End Sub
Конечно, не ожидайте всегда находить для каждого Err.Number
уникальногоException
class, это не биективное (однозначное) отношение.
Больше информации о блоках Try-Catch на официальном сайте Microsoft .