Estoy manejando una aplicación que lanza varios tipos de errores, que no se pueden corregir porque no depende del programa, así que me gustaría que cada vez que tirara un error diferente (por ejemplo el 81) hiciese una cosa
Es decir, algo así como: El programa tira error 81 --> En vez de saltar la molesta ventanita de error 81 por defecto, hago otra cosa, como cerrar el programa.
Saludos
checa esto:
Private Sub Form_Load()
On Error GoTo ErrorPersonalizado 'si ocurre un error salta a ErrorPersonalizado
Dim a As Integer 'variable
a = 4 / 0 'a es iguala 4 sobre 0, eso da error, no se peude divivir sober cero.
MsgBox "termino el subproceso", vbInformation, "" 'terminamos
Exit Sub 'salimos de la sub (saltamos la parte de ErrorPersonalizado)
ErrorPersonalizado:
MsgBox "Hubo un error." & vbCrLf & "El error fue: " & Err.Number & " - " & Err.Description, vbCritical, "" 'damos alerta
Resume Next 'continuamos despeus de la linea que tuvo el error
End Sub
el mensaje o la accion a tomar derivada del error la puedes personalizar, y peudes usar if's apra ver q error es y en cas de ser por ej error 6 (desbordamiento) haces una cosa y sie s error 13 (no coinciden los tipos) haces otra cosa. asi:
if err.number=9 then
.....
elseif err.number=13 then
......
else
......
end if
o puedes ignorar todos los errores, aunqeu esto demuestra que no sabes prgoramar bien :rolleyes:.... los que usan el sigueinte metodo es porqe no saben como eliminar sus errores entonces "le dicen al prorgama que no importan los errores":
Private Sub Form_Load()
On Error Resume Next 'si ocurre un error salta a la siguiente linea sin importar
Dim a As Integer 'variable
a = 4 / 0 'a es iguala 4 sobre 0, eso da error, no se peude divivir sober cero.
MsgBox "termino el subproceso", vbInformation, "" 'terminamos
End Sub
Muchas gracias y muy completo :o
Sin embargo, tengo dudas con el segundo código, ya que hago esto:
Private Sub Form_Load()
Dim a As Integer
a = 1 / 0
If Err.Number = 11 Then
MsgBox "error"
End If
End Sub
Y me sale el errorcito número once y lo de división por cero, y no el mensaje de error que quiero que salga.
Saludos y gracias!
Cita de: リ プ マ ン en 17 Octubre 2007, 14:56 PM
Muchas gracias y muy completo :o
Sin embargo, tengo dudas con el segundo código, ya que hago esto:
Private Sub Form_Load()
Dim a As Integer
a = 1 / 0
If Err.Number = 11 Then
MsgBox "error"
End If
End Sub
Y me sale el errorcito número once y lo de división por cero, y no el mensaje de error que quiero que salga.
Saludos y gracias!
simlemente porque lo haces mal....
Private Sub Form_Load()
on error goto errpersonalizado
Dim a As Integer
a = 1 / 0
exit sub
errpersonalizado:
If Err.Number = 11 Then
MsgBox "error"
End If
End Sub
la rpoxima vez, mira bien lso ejemplos qeu se te dan ¿vale?
Vale gracias :rolleyes: :rolleyes: ;D