Pode haver muitas razões pelas quais a conexão cai (carga do servidor, problema de rede, etc). Que seu programa está travando sugere que seu código de banco de dados não está protegido por um
try
demonstração. Se você fizer algo assim: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
Não vou entrar em uma dissertação demorada sobre tratamento de exceções, mas há muitos recursos por aí, se você der uma olhada. Como você lida com isso dependerá de sua situação específica - se registrar a exceção, registrar qual foi a última operação bem-sucedida, se tentar retomar de onde estava ou se tentar fazer tudo de novo, notificar o usuário , etc
MSDN - Try/Catch/Finally