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 Manejo de Excepciones

Una pregunta sobre 2 de 2 en el cuestionario Crear una función

## PREGUNTA: ¿por qué no se imprime la "B"? Entiendo que no hubo ValueError, así que C no se imprimió y como hubo un TypeError, se imprimió "D", lo que significa que el else ("E") no se ejecutó. No estoy seguro de por qué se omitió "B". 

print(A)
try:
    resultado = test + 5
    print(B)
except ValueError:
    print(C)
except TypeError:
    print(D)
else:
    print(E)
print(F)

3 Respuestas

No. El error ocurre en

resultado = test + 5

así que esa es la última línea del try que se ejecutará.

Puedes ejecutar el código por ti mismo aquí https://repl.it/repls/UnwillingSpringgreenBrace

Ah, eso tiene sentido ahora, ¡gracias!

El bloque try se cerrará en la línea donde ocurre el TypeError.

Más formalmente:

Si se encuentra un error, la ejecución del código del bloque try se detiene y se transfiere al bloque except correspondiente.

Avísame si esto te ayuda aquí

Gracias adam n , pero ¿no leería el print("B") antes de llegar al bloque try?

¡Esto también me ayudó! Gracias.