{"id":762,"date":"2024-04-19T11:33:40","date_gmt":"2024-04-19T11:33:40","guid":{"rendered":"https:\/\/javigomez.org\/?p=762"},"modified":"2025-09-29T20:32:51","modified_gmt":"2025-09-29T20:32:51","slug":"07-01-python-excepciones-try","status":"publish","type":"post","link":"https:\/\/javigomez.org\/index.php\/2024\/04\/19\/07-01-python-excepciones-try\/","title":{"rendered":"07.01 Python \u2013 Excepciones (try)"},"content":{"rendered":"\n<p>El manejo de errores en Python se realiza mediante el uso de bloques <strong>try<\/strong>, <strong>except<\/strong>, <strong>else<\/strong> y <strong>finally<\/strong>. Estos bloques permiten capturar y controlar errores o excepciones que pueden ocurrir durante la ejecuci\u00f3n del c\u00f3digo, lo que te da la oportunidad de manejarlos adecuadamente en lugar de que el programa se detenga abruptamente.<\/p>\n\n\n\n<p>La estructura b\u00e1sica del manejo de errores en Python es la siguiente:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>try:\n\u00a0\u00a0\u00a0 # C\u00f3digo que puede generar una excepci\u00f3n\n\u00a0\u00a0\u00a0 resultado = funcion_que_puede_lanzar_excepcion()\nexcept TipoDeExcepcion as e:\n\u00a0\u00a0\u00a0 # C\u00f3digo para manejar la excepci\u00f3n del tipo especificado\n\u00a0\u00a0\u00a0 print(\"Ocurri\u00f3 una excepci\u00f3n:\", e)\nelse:\n\u00a0\u00a0\u00a0 # C\u00f3digo que se ejecuta si no se produjo ninguna excepci\u00f3n\n\u00a0\u00a0\u00a0 print(\"No se produjo ninguna excepci\u00f3n.\")\nfinally:\n\u00a0\u00a0\u00a0 # C\u00f3digo que se ejecuta siempre, sin importar si hubo una excepci\u00f3n o no\n\u00a0\u00a0\u00a0 print(\"Termin\u00f3 el manejo de errores.\")<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>def dividir(a, b):\n    try:\n        resultado = a \/ b\n    except ZeroDivisionError as e:\n        print(\"Error: No se puede dividir entre cero.\",e)\n    else:\n        print(\"El resultado es:\", resultado)\n    finally:\n        print(\"Termin\u00f3 el manejo de errores.\")\n\ndividir(10, 2) \nprint ('***')\ndividir(10, 0) \n<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>resultado = None\na='aaa'\nb=0\ntry:\n    resultado = a\/b\nexcept ZeroDivisionError as e:\n    print(f'Error de divisi\u00f3n Cero: {e}')\n\nexcept TypeError as e:\n    print(f'Error de Tipo: {e}')\n\nprint(f'Resultado: {resultado}\u2019)\n<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>resultado = None\ntry:\n    a = int(input('Primer n\u00famero: '))\n    b = int(input('Segundo n\u00famero: '))\n    resultado = a\/b\n\nexcept ZeroDivisionError as e:\n    print(f'ZeroDivisionError - Ocurri\u00f3 un error: {e} , {type(e)}\u2019)\n\nexcept TypeError as e:\n    print(f'TypeError - Ocurri\u00f3 un error: {e} , {type(e)}\u2019)\n\nexcept Exception as e:\n    print(f'Exception - Ocurri\u00f3 un error: {e} , {type(e)}\u2019)\n\nelse:\n    print('No se arroj\u00f3 ninguna excepci\u00f3n\u2019)\n\nfinally:\n    print('Ejecuci\u00f3n del bloque finally')\n\nprint(f'Resultado: {resultado}')\nprint('Continuamos...')\n<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>class MiError(Exception):\n    def __init__(self,mensaje,codigo):\n        super().__init__(mensaje)\n        self.codigo=codigo\n\ntry:\n    valor=-1\n    if valor&lt;0:\n        raise MiError(\"El valor debe ser positivo\",1001)\nexcept MiError as e:\n    print (\"ERROR: \", e, e.codigo)\n<\/code><\/pre>\n\n\n\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<iframe loading=\"lazy\" title=\"PYTHON U07 01 try\" width=\"1200\" height=\"675\" src=\"https:\/\/www.youtube.com\/embed\/esHWCIvi5F0?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe>\n<\/div><\/figure>\n","protected":false},"excerpt":{"rendered":"<p>El manejo de errores en Python se realiza mediante el uso de bloques try, except, else y finally. Estos bloques permiten capturar y controlar errores &hellip; <\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[9],"tags":[136,138,277,332],"class_list":["post-762","post","type-post","status-publish","format-standard","hentry","category-python","tag-errores","tag-excepciones","tag-python","tag-try"],"_links":{"self":[{"href":"https:\/\/javigomez.org\/index.php\/wp-json\/wp\/v2\/posts\/762","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/javigomez.org\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/javigomez.org\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/javigomez.org\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/javigomez.org\/index.php\/wp-json\/wp\/v2\/comments?post=762"}],"version-history":[{"count":1,"href":"https:\/\/javigomez.org\/index.php\/wp-json\/wp\/v2\/posts\/762\/revisions"}],"predecessor-version":[{"id":849,"href":"https:\/\/javigomez.org\/index.php\/wp-json\/wp\/v2\/posts\/762\/revisions\/849"}],"wp:attachment":[{"href":"https:\/\/javigomez.org\/index.php\/wp-json\/wp\/v2\/media?parent=762"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/javigomez.org\/index.php\/wp-json\/wp\/v2\/categories?post=762"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/javigomez.org\/index.php\/wp-json\/wp\/v2\/tags?post=762"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}