Bienvenido a la Comunidad de Treehouse

¿Quieres colaborar en errores de código? ¿Tienes errores que necesitan comentarios? ¿Buscas un par de ojos adicionales en tu último proyecto? aquí.

¿Buscas aprender algo nuevo?

Treehouse ofrece una prueba gratuita de siete días para estudiantes nuevos. Obtén acceso a miles de horas de contenido y únete a miles de

Inicia tu prueba gratuita

Python Conceptos Básicos de Python Funciones e Iteración Flujo de Excepciones

¿Por qué el resultado no incluye B o E?

spoiler pregunta de cuestionario sobre manejo de excepciones. Ejecuté el código en el espacio de trabajo después de hacerlo mal, pero ¿alguien puede guiarme a través de esto? No entiendo.

print("A")

2 Respuestas

print(A)
try:
  resultado = test + 5 # llamemos foo
  print(B) # llamemos a esto bar
except ValueError:
  print(C) # si foo O bar lanzan un valor de error, entonces esta línea se ejecutará 
except TypeError:
  print(D) # si foo O bar lanzan un error de tipo, entonces esta línea se ejecutará
else:
  print(E) # si foo Y bar se ejecutan exitosamente, esta línea se ejecutará - en otras palabras, solo si el try no lanza una excepción.
  print(F) # si foo Y bar se ejecutan exitosamente, esta línea se ejecutará - en otras palabras, solo si el try no lanza una excepción.

Si foo lanza un error, entonces bar nunca se ejecutará porque el flujo de código saltará al bloque except o lanzará una excepción si el bloque except no está ahí para capturarla.

Para responder tu pregunta, B nunca se ejecutará porque el programa "colapsó" mientras ejecutaba la línea anterior (foo). No puedes agregar un número a una cadena, y ese error es un TypeError porque esperaba que el int 5 fuera del tipo str "5". E y F no se ejecutarán, porque el código dentro del try no se ejecutó exitosamente.

Intenta editar foo a

resultado = test + 5

y ver los resultados.

¡Gracias! Se encendió la bombilla. :)