Curso Avanzado de Desarrollo en Python
Capítulo
>
Nivel
Manejo de excepciones
Manejo de Excepciones
Objetivo
Empaqueta los suministros en cajas y captura cualquier error que pueda ocurrir utilizando Excepciones.
Hay varios suministros de emergencia que deben empacarse en kits y almacenarse en cajas para su uso posterior. Hacer esto es bastante sencillo y se puede lograr utilizando funciones comunes que ya has aprendido, sin embargo, a veces las cosas no salen como se planean. Mientras programas, es posible que hayas notado que a veces aparecen errores en la pantalla y se muestran marcas rojas en el editor donde ocurrió el problema. Puedes mitigar esto configurando los bloques de código try y except.
Estos bloques se utilizan para establecer excepciones y capturar errores antes de que detengan tu código. Funciona de la siguiente manera: usas try en un código que presenta problemas o que podría dar error y usas except para cambiar el código por otro en caso de que ocurra un error, por ejemplo:
#The try code block attempts to run a code try: number + number + string #This code yeilds an error, you can't sum numbers with string except: #If an error occurs the except code block is run instead number + number + number #The code is switched out by a sum of three numbers instead
Para comenzar, recoge todos los materiales en el campo, que son: latas de agua, "thread" y tres mantas de colores: "blue blanket", "red blanket", "green blanket". Comienza caminando hasta la parte superior del mapa y recoge las tres mantas, luego dirígete a la marca X luminosa y usa la función collect() para obtener "thread" del contenedor. Continúa moviéndote hasta la parte inferior del mapa y recoge todas las latas de agua.
Una vez que todo esté recolectado, dirígete a la marca X oscura sobre la alfombra azul para comenzar a colocar los materiales que acabas de recolectar. Primero, agrega el agua y el hilo a las variables con 2 y 3 unidades respectivamente, de esta forma: water_can = 2 y thread = 3. Luego, configura los kits como variables sumando las variables creadas anteriormente con las mantas de colores en el siguiente formato:
blue_kit = water_can + thread + "blue blanket" red_kit = water_can + thread + "red blanket" green_kit = water_can + thread + "green blanket" # Add all elements together into kits for ease of storage
Una vez que los kits se han ensamblado en las variables blue_kit, red_kit, green_kit, es hora de colocarlos en las cajas del color correspondiente, sin embargo, puede que hayas notado que el código arroja un error. Pero, ¿por qué? Todo está como debería y se siguieron las instrucciones. A veces, aunque intuitivo, las cosas no funcionan como deseamos; en este caso, no se puede sumar un número con una cadena en una variable.
¿Entonces, cómo vamos a remediarlo? Utilizando los bloques de código try / except para capturar el error y convertirlo en un reemplazo adecuado. Para cada una de las tres (3) variables, aplica estas excepciones, que en caso de error cambian el código por un valor numérico en lugar de una cadena específica.
try: blue_kit = water_can + thread + "blue blanket" except: blue_kit = water_can + thread + 1
Aunque en este caso estamos al tanto del error, hay situaciones en las que los valores dentro de las variables podrían no ser tan directos o podrían ser diferentes dependiendo de ciertas condiciones, haciendo de esto una herramienta útil para la solución de problemas o para capturar errores en tiempo de ejecución.
Completa el nivel caminando hacia las marcas X oscuras sobre las alfombras de colores, enfrentándote a las cajas y usando la función place() para colocar las variables de kit del color correspondiente en las cajas correctas.