Compartir a través de


Qué hacer cuando algo sale mal: control de errores

Actualización: noviembre 2007

En esta lección, aprenderá a crear código de control de errores básico para los programas.

Incluso los programas mejor diseñados a veces encuentran errores. Algunos errores son defectos en el código que se pueden encontrar y corregir. Otros errores son una consecuencia natural del programa; por ejemplo, el programa puede intentar abrir un archivo que ya está en uso. En casos así, los errores se pueden predecir, pero no evitar. Como desarrollador, es su trabajo predecir estos errores y ayudar a que el programa los solucione.

Errores en tiempo de ejecución

Un error que se produce mientras un programa se está ejecutando se llama error en tiempo de ejecución. Los errores en tiempo de ejecución se producen cuando un programa trata de hacer algo para lo cual no fue diseñado. Por ejemplo, si el programa intenta realizar una operación no válida, como convertir una cadena no numérica en un valor numérico, se producirá un error en tiempo de ejecución.

Cuando se produce un error en tiempo de ejecución, el programa produce una excepción, que soluciona los errores buscando código dentro del programa para tratar el error. Si no se encuentra tal código, se detiene el programa y se tiene que reiniciar. Dado que esto puede conducir a la pérdida de datos, es prudente crear el código de control de errores dondequiera que se tenga previsto que se produzcan errores.

El bloque Try...Catch...Finally

Se puede utilizar el bloque Try...Catch...Finally para controlar errores en tiempo de ejecución en el código. Puede utilizar Try para un segmento de código; si ese código produce una excepción, salta al bloque Catch y se ejecuta el código del bloque Catch. Después de que ese código ha finalizado, se ejecuta cualquier código en el bloque Finally. La instrucción End Try cierra el bloque Try...Catch...Finally completo. En el ejemplo siguiente se ilustra cómo se utiliza cada bloque.

Try
  ' Code here attempts to do something.
Catch
  ' If an error occurs, code here will run.
Finally
  ' Code in this block will always run.
End Try

Primero, se ejecuta el código del bloque Try. Si se ejecuta sin error, el programa omite el bloque Catch y ejecuta el código del bloque Finally. Si se produce un error en el bloque Try, la ejecución salta inmediatamente al bloque Catch y se ejecuta el código que se encuentra allí; luego se ejecuta el código del bloque Finally.

Inténtelo

Para utilizar el bloque Try...Catch

  1. En el menú Archivo, elija Nuevo proyecto.

  2. En el cuadro de diálogo Nuevo proyecto, en el panel Plantillas, haga clic en Aplicación para Windows.

  3. En el cuadro Nombre, escriba TryCatch y haga clic en Aceptar.

    Se abre un nuevo proyecto de formularios Windows Forms.

  4. En el Cuadro de herramientas, arrastre un control TextBox y un control Button al formulario.

  5. Haga doble clic en Button para abrir el Editor de código.

  6. En el controlador de eventos Button1_Click, escriba el siguiente código:

    Try
      Dim aNumber As Double = CDbl(Textbox1.Text)
      MsgBox("You entered the number " & aNumber)
    Catch
      MsgBox("Please enter a number.")
    Finally
      MsgBox("Why not try it again?")
    End Try
    
  7. Presione F5 para ejecutar el programa.

  8. En el cuadro de texto, escriba un valor numérico y haga clic en el botón. Aparece un cuadro de mensaje que muestra el número que ha escrito, seguido por una invitación para volver a intentarlo.

  9. A continuación, escriba un valor no numérico en el cuadro de texto, como una palabra y haga clic en el botón. Esta vez, cuando el programa intente convertir el texto del cuadro de texto en un número, no podrá hacerlo y se producirá un error. En lugar de finalizar el código en el bloque Try, se ejecuta el bloque Catch y aparece un cuadro de mensaje solicitando que se escriba un número. Se ejecuta el bloque Finally y se le invita a intentarlo de nuevo.

Pasos siguientes

En esta lección, aprendió a utilizar los bloques Try...Catch...Finally para crear una estructura básica de control de errores. Esta lección finaliza la introducción al lenguaje Visual Basic. En la siguiente serie de lecciones, aprenderá a crear la interfaz de usuario para los programas.

Próxima lección: Crear la apariencia visual de un programa: introducción a los formularios Windows Forms

Vea también

Tareas

Hacer que un programa elija entre dos posibilidades: la instrucción If...Then

Conozca sus errores: tres tipos de errores de programación

Referencia

Instrucción Try...Catch...Finally (Visual Basic)

Otros recursos

Control estructurado de excepciones en Visual Basic