Я старая шляпа на VB6.Сначала короткий урок ...
Есть причины использовать On Error Resume Next.В основном для удобства чтения.В VB6 у вас есть два способа реализовать перехват ошибок.Вы можете использовать «inline» On Error Resume Next, как это.
On Error Resume Next
<something that may throw an error>
If Err.Number <> 0 Then
<do something about this specific line of code>
Err.Clear()
End If
Или вы можете увидеть это:
Sub DoSomething
On Error Goto Handler1
<do something that causes an error>
On Error Goto Handler2
<do something that may cause an error>
Exit Sub
Handler1:
<log error or something>
Resume Next
Handler2:
<log error or something>
Resume Next
End Sub
Но в старом коде VB6 вы, вероятно, также увидите это...
Sub PerformThis
On Error Resume Next
End Sub
Независимо от того, что довольно просто преобразовать эти случаи в Try Catch ... Если вам нужно обработать ошибку, используйте быстрый "встроенный" вид On Error Resume Next, просто сделайте это..
try { _objectinfo.Add(_object.attribute1); } catch (Exception _e) { }
Вы можете также поднять попытку try для вызывающей подпрограммы, инкапсулировав код в подпрограмму ... Так что, если вам нужно поглотить всю подпрограмму, сделайте это ...
try { PerformAction(); } catch (Exception _e) { }
Сделайте это в том случае, если подпрограмма PerformAction () содержит возобновление при ошибке Далее в верхней части кода, используйте Try Catch в вызывающей подпрограмме
Удачи ...