Ciao raga
Ho scoperto la parte del codice che mi crea errore di bus
Faccio caricare dei grafici in alcune Picture Box, carica regolarmente le immagini ma ogni tanto si blocca con errore di bus
come posso correggere il codice per evitare l'errore?
Public Sub ImgKitco()
If Not Exist(user.home & "/temp/") Then Mkdir user.home & "/temp/"
If m1.SospQuoGBP = "no" And m1.StrKitcgbp Then '
Shell ("wget -N -q --directory-prefix --cookies=off -o " & user.home & "/temp/wg " & m1.StrKitcgbp & " -O " & M1.ScritImma & "/gbp")
Try PictureBoxgbp.picture = Picture.Load(M1.ScritImma & "/gbp")
End If
If m1.SospQuoUSD = "no" And m1.StrKitcUSD Then
Shell ("wget -N -q --directory-prefix --cookies=off -o " & user.home & "/temp/wg " & m1.StrKitcusd & " -O " & M1.ScritImma & "/usd")
Try PictureBoxusd.picture = Picture.Load(M1.ScritImma & "/usd")
End If
If m1.SospQuoCHF = "no" And m1.StrKitcCHF Then
Shell ("wget -N -q --directory-prefix --cookies=off -o " & user.home & "/temp/wg " & m1.StrKitcCHF & " -O " & M1.ScritImma & "/chf")
Try PictureBoxchf.picture = Picture.Load(M1.ScritImma & "/chf")
End If
End If
Catch
m1.MyErr = "Codice " & Error.Code & " - Form " & Me.name & " - Sub " & Error.Where & " - Errore " & Error.Text
m1.ScriviLog(m1.MyErr)
End
A parte che non mi è chiaro l'uso che qui fai della shell, comunque con Try rendi silenzioso l'eventuale errore su Picture.Load senza catturalo.
Tu catturi solo l'eventuale errore sul comando shell.
Potresti scrivere una cosa del genere per ottenere le anomalie senza interrompere il codice:
Dim s As String
If Not Exist(user.home & "/temp/") Then Mkdir user.home & "/temp/"
s = "wget -N -q --directory-prefix --cookies=off -o " & user.home & "/temp/wg " & m1.StrKitcgbp & " -O " & M1.ScritImma & "/gbp"
If m1.SospQuoGBP = "no" And m1.StrKitcgbp Then
Try Shell (s)
If Error Then debug s
s = M1.ScritImma & "/gbp"
Try PictureBoxgbp.picture = Picture.Load(s)
If Error Then debug s
End If
'...
Allora l'errore non è causato dal tuo codice, o almeno da quella parte di codice, vedi questo esempio:
Public Sub Main()
Try Print LaQualunque()
If Error Then Print "Errore intercettato" & "\n"
' il codice continua a funzionare'
Print ContinuoAfunzionare()
End
Private Function LaQualunque() As String
' ...sto facendo qualcosa che causa un errore...
Error.Raise("errore di prova")
Return "non mi vedrai"
End
Private Function ContinuoAfunzionare() As String
'...faccio un'altra cosa
Return "mi vedrai!!!"
End