Skip to content

Commit

Permalink
update:imagePath
Browse files Browse the repository at this point in the history
  • Loading branch information
IsaiCeSa authored Feb 17, 2022
1 parent 410c99d commit 625b4b5
Showing 1 changed file with 12 additions and 12 deletions.
24 changes: 12 additions & 12 deletions Módulo10Katas.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@
"FileNotFoundError: [Errno 2] No such file or directory: '/path/to/mars.jpg'\n",
"```\n",
"\n",
"![](../katasResueltas/images/kata10/cmd1.png)\n",
"![](../images/kata10/cmd1.png)\n",
"\n",
"La salida de error tiene más sentido ahora. Las rutas de acceso apuntan a un único archivo denominado *open.py*. La salida menciona que el error se inicia en la línea 5, que incluye la llamada a `main()`. A continuación, la salida sigue el error a la línea 2 en la llamada de función `open()`. Y, por último, `FileNotFoundError` notifica de nuevo que el archivo o el directorio no existen.\n",
"\n",
Expand All @@ -67,7 +67,7 @@
"\n",
"Couldn't find the config.txt file!\n",
"```\n",
"![](../katasResueltas/images/kata10/cmd2.png)\n",
"![](../images/kata10/cmd2.png)\n",
"\n",
"Después de la palabra clave `try`, agregamos código que tenga la posibilidad de producir una excepción. A continuación, agregamos la palabra clave `except` junto con la posible excepción, seguida de cualquier código que deba ejecutarse cuando se produce esa condición. Puesto que config.txt no existe en el sistema, Python imprime que el archivo de configuración no está ahí. El bloque `try` y `except`, junto con un mensaje útil, evita un seguimiento y sigue informando al usuario sobre el problema.\n",
"\n",
Expand All @@ -94,7 +94,7 @@
" configuration = open('config.txt')\n",
"IsADirectoryError: [Errno 21] Is a directory: 'config.txt'\n",
"```\n",
"![](../katasResueltas/images/kata10/cmd3.png)\n",
"![](../images/kata10/cmd3.png)\n",
"\n",
"Una manera poco útil de controlar este error sería detectar todas las excepciones posibles para evitar un traceback. Para comprender por qué detectar todas las excepciones es problemático, probaremos actualizando la función `main()`:\n",
"```\n",
Expand All @@ -110,7 +110,7 @@
"$ python config.py\n",
"Couldn't find the config.txt file!\n",
"```\n",
"![](../katasResueltas/images/kata10/cmd4.png)\n",
"![](../images/kata10/cmd4.png)\n",
"\n",
"El problema ahora es que el mensaje de error es incorrecto. El archivo existe, pero tiene permisos diferentes y Python no puede leerlo. Cuando se trata con errores de software, puede resultar frustrante tener errores que hagan lo siguiente:\n",
"\n",
Expand Down Expand Up @@ -138,15 +138,15 @@
"$ python config.py\n",
"Found config.txt but couldn't read it\n",
"```\n",
"![](../katasResueltas/images/kata10/cmd5.png)\n",
"![](../images/kata10/cmd5.png)\n",
"\n",
"Eliminamos el archivo config.txt para asegurarnos de que se alcanza el primer bloque `except` en su lugar:\n",
"```\n",
"rmdir config.txtrmdir config.txt\n",
"$ python config.py\n",
"Couldn't find the config.txt file!\n",
"```\n",
"![](../katasResueltas/images/kata10/cmd6.png)\n",
"![](../images/kata10/cmd6.png)\n",
"\n",
"Cuando los errores son de una naturaleza similar y no es necesario controlarlos individualmente, puedes agrupar las excepciones como una usando paréntesis en la línea `except`. Por ejemplo, si el sistema de navegación está bajo cargas pesadas y el sistema de archivos está demasiado ocupado, tiene sentido detectar `BlockingIOError` y `TimeOutError` juntos:\n",
"\n",
Expand Down Expand Up @@ -188,7 +188,7 @@
"...\n",
"Couldn't find the config.txt file!\n",
"```\n",
"![](../katasResueltas/images/kata10/cmd7.png)\n",
"![](../images/kata10/cmd7.png)\n",
"\n",
"Intenta usar siempre la técnica que proporcione la mejor legibilidad para el código y que ayude a mantenerlo en el futuro. A veces es necesario usar código menos legible para ofrecer una mejor experiencia de usuario cuando se produce un error."
]
Expand Down Expand Up @@ -219,7 +219,7 @@
">>> water_left(5, 100, 2)\n",
"'Total water left after 2 days is: -10 liters'\n",
"```\n",
"![](../katasResueltas/images/kata10/cmd8.png)\n",
"![](../images/kata10/cmd8.png)\n",
"\n",
"Esto no es muy útil, ya que una carencia en los litros sería un error. Después, el sistema de navegación podría alertar a los astronautas que no habrá suficiente agua para todos en dos días. Si eres un ingeniero(a) que programa el sistema de navegación, podrías generar una excepción en la función water_left() para alertar de la condición de error:\n",
"\n",
Expand All @@ -240,7 +240,7 @@
" File \"<stdin>\", line 6, in water_left\n",
"RuntimeError: There is not enough water for 5 astronauts after 2 days!\n",
"```\n",
"![](../katasResueltas/images/kata10/cmd9.png)\n",
"![](../images/kata10/cmd9.png)\n",
"\n",
"En el sistema de navegación, el código para señalar la alerta ahora puede usar `RuntimeError` para generar la alerta:\n",
"\n",
Expand All @@ -250,7 +250,7 @@
"except RuntimeError as err:\n",
" alert_navigation_system(err)\n",
"```\n",
"![](../katasResueltas/images/kata10/cmd10.png)\n",
"![](../images/kata10/cmd10.png)\n",
"\n",
"La función `water_left()` también se puede actualizar para evitar el paso de tipos no admitidos. Intentenis pasar argumentos que no sean enteros para comprobar la salida de error:\n",
"\n",
Expand All @@ -261,7 +261,7 @@
" File \"<stdin>\", line 3, in water_left\n",
"TypeError: can't multiply sequence by non-int of type 'NoneType'\n",
"```\n",
"![](../katasResueltas/images/kata10/cmd11.png)\n",
"![](../images/kata10/cmd11.png)\n",
"\n",
"El error de `TypeError` no es muy descriptivo en el contexto de lo que espera la función. Actualizaremos la función para que use `TypeError`, pero con un mensaje mejor:\n",
"```\n",
Expand Down Expand Up @@ -295,7 +295,7 @@
" File \"<stdin>\", line 9, in water_left\n",
"TypeError: All arguments must be of type int, but received: '3'\n",
"```\n",
"![](../katasResueltas/images/kata10/cmd12.png)\n"
"![](../images/kata10/cmd12.png)\n"
]
}
],
Expand Down

0 comments on commit 625b4b5

Please sign in to comment.