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.
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, captas 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.