No sirve, porque el error me lo arroja en for each patata in verdura , y eso no entra en el try.
				
			Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.
Mostrar Mensajes Menú
for each patata in verdura
for each coles in huerto
hago cosas
next
next
try
for each patata in verdura
for each coles in huerto
hago cosas
next
catch
continue for
end try
next
try
for each patata in verdura
for each coles in huerto
hago cosas
next
next
catch
continue for
end try

				
        Dim dir As String = My.Computer.FileSystem.CurrentDirectory & "\" & "data.tmp"
        Wr("usuario", dir)
        Wr("contraseña", dir)
        Wr("cd", dir)
        Wr("carpeta1", dir)
        Wr("cd", dir)
        Wr("carpeta2", dir)
        Wr("put img.png", dir)
        Wr("bye", dir, False)
        Shell("cmd /c ftp -v -i -s:" & Chr(34) & dir & Chr(34) & " ftp.host.es")
Sub Wr(ByVal text As String, ByVal dir As String, Optional ByVal space As Boolean = True)
        If space = True Then
            My.Computer.FileSystem.WriteAllText(dir, text & vbCrLf, True)
        Else
            My.Computer.FileSystem.WriteAllText(dir, text, True)
        End If
    End Sub