Przyczyn zerwania połączenia może być wiele (obciążenie serwera, problem z siecią itp.). To, że Twój program się zawiesza, sugeruje, że kod Twojej bazy danych nie jest chroniony przez try
oświadczenie. Jeśli zrobisz coś takiego :
try
Using connect1 As New MySqlConnection(ConnectLocalhost.serverString)
connect1.Open()
Dim cmd = New MySqlCommand("set net_write_timeout=99999; _
set net_read_timeout=99999", connect1)
cmd.ExecuteNonQuery()
Dim BusinessReader = selectSomeQuery("Select *...", connect1)
Do While BusinessReader.Read
'random exception here'
'...more code'
Loop
End Using
Catch ex As Exception
' code breaks here on exception - recover from this point '
End Try
Nie będę zagłębiać się w przedłużającą się rozprawę na temat obsługi wyjątków, ale istnieje wiele zasobów, jeśli się przyjrzysz. Sposób, w jaki sobie z tym poradzisz, będzie zależeć od Twojej konkretnej sytuacji – czy zarejestrować wyjątek, zapisać ostatnią udaną operację, czy spróbować wznowić od miejsca, w którym byłeś, czy spróbować zrobić wszystko od nowa, powiadom użytkownika itp.