Prueba/excepto de Python y manejo de errores

Evite que sus scripts de Python fallen. Aprenda a intentar, excepto, finalmente bloquear y cómo generar excepciones personalizadas correctamente.

Pruébelo en el editor

Descripción general

En el mundo real de la programación, los errores son completamente inevitables. Es posible que se eliminen archivos, que se interrumpan las conexiones de red o que un usuario ingrese una letra cuando su secuencia de comandos esperaba un número. Si estos escenarios ocurren sin salvaguardas, Python detiene la ejecución y genera una excepción (un error de tiempo de ejecución), lo que bloquea todo el programa. El manejo de errores es el arte de anticipar y gestionar con gracia estos fallos.

La base de la gestión de errores en Python es la estructura de bloques "try" y "except". Coloca el código potencialmente peligroso dentro del bloque "try". Python intentará ejecutarlo. Si ocurre un error, en lugar de fallar, Python intercepta la excepción e inmediatamente salta hacia abajo para ejecutar el código contenido en el bloque "excepto". Esto permite que el programa se recupere, muestre un mensaje de error amigable y continúe ejecutándose.

Es una práctica recomendada fundamental detectar excepciones específicas y específicas en lugar de escribir un bloque general `except:`. Por ejemplo, detectar `FileNotFoundError` o `ValueError` garantiza explícitamente que está manejando el problema exacto que anticipó, en lugar de enmascarar accidentalmente errores no relacionados (como un error de sintaxis) que realmente necesita conocer.

Python también proporciona un bloque opcional `else`, que se ejecuta solo si el bloque `try` se completó completamente exitosamente sin generar ningún error. Este es el lugar perfecto para poner la lógica que depende absolutamente del éxito de la peligrosa operación. Además, el bloque "finalmente" proporciona una forma de ejecutar código sin importar lo que suceda, ya sea que haya ocurrido un error o no. El bloque "finalmente" es vital para acciones de limpieza, como cerrar conexiones de bases de datos o liberar bloqueos de archivos.

Más allá de detectar errores, Python permite a los desarrolladores activarlos explícitamente utilizando la palabra clave "raise". Generar una excepción le permite imponer restricciones estrictas en su lógica, rechazando datos no válidos antes de que corrompan el estado de su aplicación. Al definir clases de excepción personalizadas que heredan de la clase base `Exception` de Python, los desarrolladores pueden crear jerarquías de errores altamente específicas de dominio para aplicaciones empresariales masivas.

Código y salida de ejecución

Crear seguridad estructural al interactuar con estructuras de archivos potencialmente peligrosas o inexistentes.

def divide_numbers(a, b):
    try:
        result = a / b
    except ZeroDivisionError:
        return "Error: Cannot divide by zero!"
    except TypeError:
        return "Error: Both arguments must be numbers."
    else:
        return f"The result is {result}"
    finally:
        print("Execution completed.")

print(divide_numbers(10, 2))
print(divide_numbers(10, 0))
Salida terminal
Execution completed.
The result is 5.0
Execution completed.
Error: Cannot divide by zero!

Implementación paso a paso

  • Validar envíos de formularios de usuario
  • Garantizar que las solicitudes de red no fallen cuando se agote el tiempo de espera
  • Cerrar conexiones de bases de datos de forma segura en un bloque finalmente

Preguntas frecuentes

¿Cuál es la palabra clave "aumentar"?

La palabra clave rise se utiliza para generar una excepción a propósito. Puede definir qué tipo de error generar y el texto que se imprimirá al usuario.

Temas relacionados

Recursos recomendados de Python

Amplíe sus conocimientos con tutoriales interactivos relacionados, hojas de trucos y comparaciones de códigos.