Ahora cuando se produce un error este se cierra
¿Hay algo para evitar que se cierre por un error?
No somos magos, podrías empezar por detallar el error, mostrando una imagen o copiando el error completo, así sería más fácil.
Si quieres ignorar complétamente TODOS los errores, aparte de controlar la excepción, creo que sería suficiente con desactivar el debugger de Windows.
U otra forma es mandar todas las excepciones no controladas a un método, para controlarlas allí o símplemente para ignorarlas ante el debugger (para que no te aparezca el dialogo de error):
EDITO: No te quiero confundir mucho, esto es código de VB.NET, no manejo VB6 y no me hago una idea de como trasladarlo, eso se lo dejo a
$Edu$ xD, en lugar del Try usa un "on error goto" vacío, yo te doy la idea, el código funciona
:
Public Class Form1
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Try
AddHandler Application.ThreadException, AddressOf Application_ExHandler
Application.SetUnhandledExceptionMode(UnhandledExceptionMode.CatchException, False)
Catch : End Try
End Sub
Private Sub Application_ExHandler(ByVal sender As Object, ByVal e As System.Threading.ThreadExceptionEventArgs)
' Aquí controlas las excepciones.
' Dim ex As Exception = CType(e.Exception, Exception)
' MsgBox(ex.Message)
' O lo dejas vacio para ignorarlas.
End Sub
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
IO.
File.
OpenText("X:\Fail.txt") End Sub
End Class
http://msdn.microsoft.com/en-us/library/system.windows.forms.application.setunhandledexceptionmode.aspxPD: El contenido del form load lo deberías meter en el Main tanto en una app de consola como en una GUI, porque lo conveniente es usarlo antes de que se cree cualquier control del form. Aunque con un simple "Try/on error goto" como en el ejemplo lo solucionas también.
Saludos.