En Python, la palabra clave except se utiliza junto con try para capturar y manejar excepciones, permitiéndote gestionar errores de forma controlada.
Con esta palabra clave defines bloques de respuesta ante errores específicos dentro de una sentencia try, indicando qué tipo de excepción capturar y cómo reaccionar en cada caso.
Puedes encontrar el código Python de este artículo en el repositorio de ejemplos de Python Scouts. ¡Te agradeceríamos mucho si nos dejas una estrella (⭐) en el repositorio!
Sintaxis
La sintaxis básica para usar except es la siguiente:
try:
<block>
except ExceptionType [as variable]:
<handler>
Puedes capturar múltiples excepciones con cláusulas except separadas:
try:
<block>
except ExceptionType1:
<handler_1>
except ExceptionType2:
<handler_2>
También puedes agrupar varias excepciones en una sola cláusula usando una tupla:
try:
<block>
except (ExceptionType1, ExceptionType2):
<handler>
Los corchetes indican elementos opcionales.
Ejemplos prácticos
Aquí tienes algunos ejemplos que muestran cómo se utiliza la palabra clave except:
>>> try:
... result = 10 / 0
... except ZeroDivisionError:
... print("Error: división por cero")
...
Error: división por cero
En este ejemplo, intentas dividir 10 entre 0, lo cual genera una excepción ZeroDivisionError. La cláusula except captura esa excepción y muestra un mensaje en lugar de detener el programa.
Puedes acceder a los detalles de la excepción usando la palabra clave as:
>>> try:
... number = int("Python")
... except ValueError as error:
... print(f"No se pudo convertir: {error}")
...
No se pudo convertir: invalid literal for int() with base 10: 'Python'
Aquí, intentas convertir una cadena que no representa un número a un entero, lo que provoca una excepción ValueError. Con as, capturas el objeto de excepción para mostrar un mensaje más detallado.
También puedes capturar múltiples excepciones en diferentes cláusulas except:
>>> def process_input(value):
... try:
... number = int(value)
... result = 100 / number
... except ValueError:
... print("Error: valor no numérico")
... except ZeroDivisionError:
... print("Error: división por cero")
... else:
... print(f"Resultado: {result}")
...
>>> process_input("abc")
Error: valor no numérico
>>> process_input("0")
Error: división por cero
>>> process_input("4")
Resultado: 25.0
En la práctica, es recomendable capturar excepciones específicas en lugar de usar un except genérico sin tipo de excepción o usando Exception. Esto te permite manejar cada error de forma adecuada y evitar ocultar errores inesperados en tu código.
Uso de except
Los casos de uso más comunes de la palabra clave except incluyen los siguientes:
- Capturar excepciones específicas, como
ZeroDivisionError,ValueError, entre otras, para proporcionar mensajes de error claros y personalizados. - Acceder a los detalles de una excepción usando
aspara registrar o presentar información útil. - Manejar múltiples tipos de excepciones con distintas cláusulas
except, ofreciendo respuestas diferenciadas ante cada error. - Proveer un mecanismo para continuar la ejecución del programa incluso cuando ocurre un error.
- Implementar lógica de recuperación o limpieza cuando se produce un error inesperado.
Resumiendo
La palabra clave except en Python es fundamental para el manejo de excepciones, permitiéndote capturar y gestionar errores de manera controlada.
Conocer y emplear except junto con try, else y finally te permite crear programas más robustos que manejan situaciones inesperadas sin interrupciones abruptas.
Puedes encontrar el código Python de este artículo en el repositorio de ejemplos de Python Scouts. ¡Te agradeceríamos mucho si nos dejas una estrella (⭐) en el repositorio!