El manejo de excepciones es su capacidad para personalizar y mostrar mensajes de error para partes de su programa que no funcionan.
Ya sea que esté creando un sitio web, haciendo una API, un módulo o cualquier otro producto usando Python, su capacidad para manejar las excepciones de manera efectiva le permite indicar explícitamente la causa de un error.
Aquí, veremos cómo puede manejar las excepciones en Python.
Cómo funciona el manejo de excepciones en Python
Cuando genera excepciones, le está diciendo a Python que muestre un mensaje cada vez que falla un bloque de código. El manejo de excepciones es como decirle a alguien que intente levantar un peso. Y si no pueden, deberían avisarle.
Sin embargo, para generar una excepción en Python, le indicará a Python que intente ejecutar un bloque de código en particular. Si ese bloque falla, puede pedirle a Python que genere una excepción definida al código fallido.
¿Cuándo debería utilizar excepciones en la programación de Python?
En la mayoría de las ocasiones, puede enmascarar los errores estándar de Python mediante excepciones. Pero debe permanecer atento, ya que hacer esto puede causar problemas de depuración. En consecuencia, es posible que le resulte difícil averiguar la causa raíz de un eventual error.
Por lo tanto, debe usar excepciones cuando haya probado suficientemente su código y esté seguro de que funciona. En última instancia, es una buena práctica usarlos para manejar fallas potenciales que pueden surgir del usuario final en lugar del código en sí.
En otras palabras, puede usar las excepciones como una herramienta de advertencia para guiar a los usuarios sobre cómo usar su programa.
Manejo de excepciones de Python
Para manejar excepciones en Python, primero debe envolver su código en un intentar... excepto cuadra. De vez en cuando, es posible que deba incluir un finalmente declaración para manejar otras acciones, dependiendo de sus necesidades.
El concepto de codificación de las excepciones de Python generalmente se ve así:
intentar:
"código a ejecutar"
excepto:
"mensaje de error"
Como se mencionó anteriormente, también puede usar finalmente en un bloque de excepción. Pero el código que escribes dentro de un finalmente La cláusula es independiente y se ejecuta tanto si hay una excepción como si no.
En esencia, es útil si tiene otro bloque de código que desea ejecutar de forma continua independientemente de lo que suceda dentro del intentar... excepto cuadra.
He aquí un ejemplo:
intentar:
imprimir (9 + 6)
excepto:
imprimir ("mensaje de error")
finalmente:
imprimir ("reiniciar")
Producción:
15
por favor reinicie
En el código anterior, por favor reinicie se ejecuta continuamente, independientemente de si hay una excepción o no.
Un demás La condición también puede seguir una excepto declaración:
intentar:
C = 2 + B
excepto:
imprimir ("B debe definirse")
demás:
print (u "¡Agregado exitosamente! El resultado es% s "% (C))
Producción: B necesita ser definido
Ahora inténtelo de nuevo con "B" definido:
intentar:
B = 5
C = 2 + B
excepto:
imprimir ("B debe definirse")
demás:
print (u "¡Agregado exitosamente! El resultado es% s "% (C))
Producción: ¡Agregado exitosamente! El resultado es 7
Los ejemplos anteriores son excepciones no estandarizadas. Pero puede tener una excepción más explícita cuando combina excepciones integradas (definidas) con excepciones no estandarizadas:
intentar:
C = 2 + B
excepto NameError como err:
print (err, ":", "B debe definirse, por favor")
demás:
print (u "¡Agregado exitosamente! El resultado es% s "% (C))
Producción: el nombre 'B' no está definido: B debe definirse, por favor
La excepción anterior primero verifica si hay un NameError en el intentar cuadra. Luego imprime el estándar NameError excepción primero ("el nombre 'B' no está definido"). Y lo admite con su excepción escrita ("B debe definirse, por favor").
Relacionados: Principios básicos de programación que todo programador debe conocer
Y si desea manejar una cadena de excepciones, también puede acompañar un intentar bloque con muchos excepto declaraciones. Esto es muy útil si tu intentar block tiene el potencial de tener muchas excepciones:
intentar:
B = 5
C = 2 + B
D = flotar (6)
F = 7/0
excepto NameError como err:
print (err, ":", "B debe definirse, por favor")
excepto ValueError como val:
print (val, ":", "No puedes convertir esos datos")
excepto ZeroDivisionError como zeroerr:
print (zeroerr, ":", "No puedes dividir un número por cero")
demás:
print (u "¡Operación exitosa! Los resultados son:% s,% s y% s "% (C, D, F))
Producción: división por cero: no se puede dividir un número entre cero
¿Y si la división es válida? Por ejemplo, reemplazando F = 7/0 en el código anterior con F = 7/5 da:
Producción: ¡Operación exitosa! Los resultados son: 7, 6.0 y 1.4
Excepciones definidas por el usuario en Python
También puede presentar su excepción y llamarlos más tarde en su programa. Esto le permite dar una descripción específica de su excepción y nombrarla como desee.
No obstante, todas las excepciones definidas por el usuario (directa o indirectamente) todavía provienen del Excepción clase de Python.
El código de ejemplo a continuación hace referencia a la base Excepción directamente llamando Error de tiempo de ejecución de eso:
clase connectionError (RuntimeError):
def __init __ (self, value):
self.value = valor
intentar:
subir connectionError ("Nombre de host incorrecto")
excepto connectionError como err:
imprimir (err.value)
Producción: Nombre de host incorrecto
Tenga en cuenta que error de conexión, en este caso, es una clase definida por el usuario, que puede generar en cualquier momento que lo necesite en su programa.
Relacionados: La guía para principiantes de expresiones regulares con Python
Puede hacer una excepción definida por el usuario derivándola directamente del Excepción clase base. Sin embargo, la siguiente excepción evita la resta de 5 de 6 y llama a la excepción de la clase base directamente:
errores de clase (excepción):
aprobar
clase sixFiveError (errores):
def __init __ (self, value, message):
self.value = valor
self.message = mensaje
intentar:
raise sixFiveError (6-5, "Esta sustracción no está permitida")
excepto sixFiveError como e:
print ("Hubo un error:", e.message)
Producción: Hubo un error: esta resta no está permitida
En la práctica, puede usar una excepción que definió anteriormente llamándola en otra función. Por ejemplo, puede crear un floatError que solo permite la adición de dos flotadores:
# Primero llame a las clases de excepción base:
errores de clase (excepción):
aprobar
# Luego, derive su propia excepción de la clase base:
clase FloatError (errores):
def __init __ (self, value, message):
self.value = valor
self.message = mensaje
# Crea una función para agregar dos flotantes:
def addTwoFloat (a, b):
if (escriba (a) y escriba (b))! = float:
subir FloatError (a + b, "Los números deben ser flotantes para agregar")
demás:
imprimir (a + b)
addTwoFloat (4, 7)
Producción: __main __. FloatError: (11, 'Los números deben ser flotantes para agregar')
Porque ahora has definido un FloatError clase, Python lo plantea si intenta agregar dos literales no flotantes usando el addtwoFloat función.
Puede imprimir el FloatError class en el mismo archivo de Python donde lo creó para ver qué sucede:
imprimir (FloatError)
Producción:
FloatError, sin embargo, no es una excepción de Python incorporada. Puede verificar esto llamando FloatError en otro archivo Python nuevo donde no ha creado esta clase:
imprimir (FloatError)
Producción: NameError: el nombre 'FloatError' no está definido
Obtienes un NameError porque Python no lo reconoce como una excepción estándar.
También puede intentar autodefinir otras clases de error para ver cómo se desarrollan.
Haga que sus programas de Python sean más fáciles de usar con excepciones
Hay muchas excepciones estándar en Python. Pero también puedes definir el tuyo. No obstante, la facilidad de uso de su programa depende hasta cierto punto de cómo maneja varias excepciones (ya sean definidas por el usuario, no específicas o estándar).
Sin embargo, las excepciones le permiten dictar cómo debe funcionar su programa cuando los usuarios interactúan con ellos. Declarar de forma clara y concisa la causa de un error también les da a los usuarios un aviso sobre lo que están haciendo mal y, a veces, les indica la dirección correcta.
Equípate con los conocimientos técnicos para eliminar todos los errores de Python que encuentres en tu camino.
Leer siguiente
- Programación
- Pitón
- Tutoriales de codificación

Idowu es un apasionado de la tecnología inteligente y la productividad. En su tiempo libre, juega con la codificación y cambia al tablero de ajedrez cuando está aburrido, pero también le encanta romper con la rutina de vez en cuando. Su pasión por mostrarle a la gente el camino en torno a la tecnología moderna lo motiva a escribir más.
Suscríbete a nuestro boletín
¡Únase a nuestro boletín de noticias para obtener consejos técnicos, reseñas, libros electrónicos gratuitos y ofertas exclusivas!
Un paso más…!
Confirme su dirección de correo electrónico en el correo electrónico que le acabamos de enviar.