Foro de elhacker.net

Programación => Programación Visual Basic => Mensaje iniciado por: ‭lipman en 17 Octubre 2007, 14:05 pm



Título: Para cada error, su correspondiente respuesta. ¿Cómo?
Publicado por: ‭lipman en 17 Octubre 2007, 14:05 pm
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


Título: Re: Para cada error, su correspondiente respuesta. ¿Cómo?
Publicado por: SERBice en 17 Octubre 2007, 14:22 pm
checa esto:

Código:
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:
Código:
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":

Código:
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


Título: Re: Para cada error, su correspondiente respuesta. ¿Cómo?
Publicado por: ‭lipman 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:

Código
  1. Private Sub Form_Load()
  2. Dim a As Integer
  3. a = 1 / 0
  4. If Err.Number = 11 Then
  5. MsgBox "error"
  6. End If
  7. 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!


Título: Re: Para cada error, su correspondiente respuesta. ¿Cómo?
Publicado por: SERBice en 17 Octubre 2007, 14:58 pm
Muchas gracias y muy completo  :o

Sin embargo, tengo dudas con el segundo código, ya que hago esto:

Código
  1. Private Sub Form_Load()
  2. Dim a As Integer
  3. a = 1 / 0
  4. If Err.Number = 11 Then
  5. MsgBox "error"
  6. End If
  7. 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....

Código
  1. Private Sub Form_Load()
  2. on error goto errpersonalizado
  3. Dim a As Integer
  4. a = 1 / 0
  5. exit sub
  6. errpersonalizado:
  7. If Err.Number = 11 Then
  8. MsgBox "error"
  9. End If
  10. End Sub


la rpoxima vez, mira bien lso ejemplos qeu se te dan ¿vale?


Título: Re: Para cada error, su correspondiente respuesta. ¿Cómo?
Publicado por: ‭lipman en 17 Octubre 2007, 15:23 pm
Vale gracias  :rolleyes: :rolleyes: ;D