Control de excepciones en Python
El control de excepciones es un mecanismo que permite capturar y manejar errores que pueden ocurrir durante la ejecución de un programa. En Python, esto se logra mediante el uso de las palabras clave try
y except
.
Sintaxis básica
La sintaxis básica de un bloque try-except
es la siguiente:
try: # Código que podría generar una excepción except: # Código que se ejecuta cuando se produce una excepción
En este ejemplo, todo el código dentro del bloque try
se ejecutará normalmente. Sin embargo, si se genera una excepción durante la ejecución de este código, se ejecutará el bloque except
en lugar de abortar el programa.
La cláusula except
puede tomar varios parámetros opcionales que permiten personalizar el manejo de la excepción:
except:
captura cualquier tipo de excepciónexcept TipoDeExcepción:
captura una excepción específica de tipoTipoDeExcepción
except (TipoExcepción1, TipoExcepción2):
captura cualquiera de los tipos de excepción en la tuplaexcept TipoExcepción as variable:
captura la excepción y la almacena en la variable especificadaexcept:
captura cualquier excepción que no haya sido capturada por ninguna otra cláusulaexcept
previa
Ejemplos de control de excepciones
A continuación, se presentan algunos ejemplos para ilustrar cómo se utiliza el control de excepciones en Python.
Excepción ZeroDivisionError
La siguiente función divide dos números y devuelve el resultado:
def dividir(numero1, numero2): return numero1 / numero2
Si el segundo número es cero, se generará una excepción ZeroDivisionError
al intentar realizar la división. Para evitar que la función aborte el programa, se puede utilizar el bloque try-except
para capturar y manejar la excepción:
def dividir(numero1, numero2): try: return numero1 / numero2 except ZeroDivisionError: print('Error: no se puede dividir entre cero')
En este ejemplo, el bloque try
puede generar una excepción ZeroDivisionError
si se intenta dividir entre cero. Si esto ocurre, se ejecutará el bloque except
y se imprimirá un mensaje de error en la pantalla en lugar de abortar el programa.
Excepción FileNotFoundError
La siguiente función lee el contenido de un archivo especificado por su ruta:
def leer_archivo(ruta): archivo = open(ruta, 'r') contenido = archivo.read() archivo.close() return contenido
Si el archivo especificado no existe, se generará una excepción FileNotFoundError
al intentar abrirlo. Se puede utilizar el bloque try-except
para capturar y manejar la excepción:
def leer_archivo(ruta): try: archivo = open(ruta, 'r') contenido = archivo.read() archivo.close() return contenido except FileNotFoundError: print('Error: el archivo especificado no existe')
En este ejemplo, el bloque try
intentará abrir el archivo especificado y leer su contenido. Sin embargo, si el archivo no existe, se generará una excepción FileNotFoundError
. Para evitar que la función aborte el programa, se utiliza el bloque except
para capturar y manejar la excepción.
Excepción personalizada
En algunos casos, puede ser útil definir excepciones personalizadas para manejar situaciones específicas. Para hacer esto, se puede crear una nueva clase que herede de la clase Exception
:
class MiError(Exception): pass def funcion_con_error(): raise MiError('Este es un mensaje de error personalizado') try: funcion_con_error() except MiError as e: print('Se produjo un error:', e)
En este ejemplo, se define una nueva clase de excepción llamada MiError
. La función funcion_con_error()
genera deliberadamente una excepción de este tipo utilizando la palabra clave raise
. El bloque try-except
captura la excepción MiError
y muestra un mensaje personalizado en la pantalla.
Conclusión
El control de excepciones es una herramienta poderosa que permite manejar errores de manera elegante y prevenir que el programa se detenga abruptamente. A través del uso de los bloques try-except
, es posible capturar y manejar excepciones de manera personalizada para cada situación. Como desarrolladores Python, es importante dominar este concepto y utilizarlo de manera efectiva en nuestros programas.
Deja una respuesta