{"id":81,"date":"2026-10-01T17:53:02","date_gmt":"2026-10-01T17:53:02","guid":{"rendered":"https:\/\/java.nosoyia.es\/?page_id=81"},"modified":"2026-10-01T17:53:02","modified_gmt":"2026-10-01T17:53:02","slug":"captura-de-errores-try-catch-finally","status":"publish","type":"page","link":"https:\/\/java.nosoyia.es\/?page_id=81","title":{"rendered":"Captura de errores:             try \/catch \/ finally"},"content":{"rendered":"\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-3a88641f wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<p class=\"has-background wp-block-paragraph\" style=\"background-color:#a1f6ed;padding-top:0;padding-right:0;padding-bottom:0;padding-left:0\">Correspondencia en Python &#8212;&gt;<\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/python.nosoyia.es\/capturar-errores-try-except\/\"><img loading=\"lazy\" decoding=\"async\" width=\"100\" height=\"56\" src=\"https:\/\/java.nosoyia.es\/wp-content\/uploads\/2026\/06\/Flor.jpg\" alt=\"\" class=\"wp-image-44\" title=\"Bloques en Python\"\/><\/a><\/figure>\n<\/div>\n<\/div>\n\n\n\n<p class=\"wp-block-paragraph\">La captura de errores, va a permitir que si durante la ejecuci\u00f3n del programa se prev\u00e9 que pueda ocurrir alg\u00fan imprevisto, no se vea detenido el normal funcionamiento del c\u00f3digo y se reconvierta el error.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Por ejemplo si el programa espera que se introduzca un determinado tipo de dato, por ejemplo un valor entero, y el usuario facilita un dato literal o num\u00e9rico decimal, el flujo de ejecuci\u00f3n no se debe ver detenido y el programa debe de seguir ejecut\u00e1ndose con normalidad.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Para ello se dispone de la sentencia try\/catch\/finally.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">La primera parte de la sentencia try { } incluye el bloque que va a mantenerse controlado, de tal forma que se si produce un error dentro de este c\u00f3digo, el programa ejecutar\u00e1 lo que se haya incluido dentro de catch ( )  { } que va a contener el bloque a ejecutar en caso del error previsto.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Por \u00faltimo finally { } va a contener el bloque que se ejecutar\u00e1 en cualquier caso, se produzca o no el error previsto. Esta \u00faltimo bloque no es necesario que se incluya, pero en ocasiones puede ser \u00fatil.<\/p>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-plain\"><code>import java.util.InputMismatchException;\nimport java.util.Scanner;\npublic class Entrada {\n    public static void main(String[] args) {\n        boolean numero=false;\n        System.out.print(&quot;Dime un n\u00famero y te digo su rec\u00edproco: &quot;);\n\n\n        while (numero==false) {\n            try {\n                Scanner mi_scanner = new Scanner(System.in);        \n                double el_numero=mi_scanner.nextDouble(); \n                double reciproco=1\/el_numero;\n                System.out.print(&quot;El rec\u00edproco de  &quot;+el_numero+&quot; es &quot;+reciproco);\n                numero=true;\n            }\n        \n            catch (InputMismatchException e){\n                System.out.print(&quot;Por favor, debe introducir un dato num\u00e9rico. &quot;);\n            } \n\n            \/\/Si entramos como valor un 0, dar\u00e1 como rec\u00edproco Infinity. \n\n            catch (Exception e){\n                System.out.print(&quot;Ocurri\u00f3 un error imprevisto no identificado. &quot;);\n            }\n\n            finally {\n                System.out.print(&quot; Gracias: &quot;);\n            }\n        }\n    }\n}<\/code><\/pre><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">En este c\u00f3digo pedimos que se nos introduzca un n\u00famero. A continuaci\u00f3n se calcula el rec\u00edproco de dicho n\u00famero, que es la unidad dividida entre el n\u00famero.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Si en lugar de un n\u00famero se introduce un literal, en el programa se ha previsto el error \u00abInputMismatchException\u00bb que se encarga de capturar el error y ejecutar el correspondiente c\u00f3digo que se indique. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Tambi\u00e9n se ha previsto que se pueda producir un error gen\u00e9rico \u00abException\u00bb que captura cualquier tipo de error que se pueda producir. Utilizar este tipo de error gen\u00e9rico, llevar\u00e1 aparejado que si se produce, tengamos que averiguar nosotros mismos qu\u00e9 es lo que ha podido fallar.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ejemplo de ejecuci\u00f3n:<\/p>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism off-numbers lang-plain\"><code>Dime un n\u00famero y te digo su rec\u00edproco: no lo se\nPor favor, debe introducir un dato num\u00e9rico.  Gracias: tres\nPor favor, debe introducir un dato num\u00e9rico.  Gracias: 4\nEl rec\u00edproco de  4.0 es 0.25 Gracias: <\/code><\/pre><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">Cuando se ejecuta, nos pide un valor num\u00e9rico. Si el dato que facilitamos no es num\u00e9rico, se nos vuelve a pedir un dato num\u00e9rico y nos da las gracias. Cuando introducimos un dato num\u00e9rico, se muestra su rec\u00edproco y nos da las gracias. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Si no se hubiese utilizado este bloque de captura de errores, el programa se habr\u00eda detenido mostrando el error producido.<\/p>\n\n\n\n<figure class=\"wp-block-table tabla-colores has-large-font-size\"><table class=\"has-fixed-layout\"><tbody><tr><td><a href=\"https:\/\/java.nosoyia.es\/\">Inicio<\/a><\/td><td><a href=\"https:\/\/java.nosoyia.es\/?page_id=52\">Comandos Java<\/a><\/td><td><a href=\"https:\/\/java.nosoyia.es\/?page_id=30\" data-type=\"link\" data-id=\"https:\/\/java.nosoyia.es\/?page_id=30\">Bloques de c\u00f3digo.<\/a><\/td><\/tr><tr><td><a href=\"https:\/\/java.nosoyia.es\/?page_id=34\" data-type=\"link\" data-id=\"https:\/\/java.nosoyia.es\/?page_id=34\">Comentar c\u00f3digo<\/a><\/td><td><a href=\"https:\/\/java.nosoyia.es\/?page_id=18\" data-type=\"link\" data-id=\"https:\/\/java.nosoyia.es\/?page_id=18\">System.out.print<\/a><\/td><td><a href=\"https:\/\/java.nosoyia.es\/?page_id=71\" data-type=\"page\" data-id=\"71\">Scanner (System.in)<\/a><\/td><\/tr><tr><td><a href=\"https:\/\/java.nosoyia.es\/?page_id=81\">Captura de errores<\/a><\/td><td><a href=\"https:\/\/java.nosoyia.es\/?page_id=91\">String<\/a><\/td><td><a href=\"https:\/\/java.nosoyia.es\/?page_id=114\">Datos  Num\u00e9ricos<\/a><\/td><\/tr><tr><td><a href=\"https:\/\/java.nosoyia.es\/?page_id=124\">Elementos aleatorios<\/a><\/td><td><a href=\"https:\/\/java.nosoyia.es\/?page_id=136\">Datos Fecha\/hora<\/a><\/td><td><a href=\"https:\/\/java.nosoyia.es\/?page_id=150\">Constantes<\/a><\/td><\/tr><tr><td><a href=\"https:\/\/java.nosoyia.es\/?page_id=157\">Bucles for<\/a><\/td><td><a href=\"https:\/\/java.nosoyia.es\/?page_id=167\">Bucles while<\/a><\/td><td><a href=\"https:\/\/java.nosoyia.es\/?page_id=177\">Bloque if<\/a><\/td><\/tr><tr><td><a href=\"https:\/\/java.nosoyia.es\/?page_id=190\">Arrays<\/a><\/td><td><a href=\"https:\/\/java.nosoyia.es\/?page_id=199\">ArrayList<\/a><\/td><td><a href=\"https:\/\/java.nosoyia.es\/?page_id=227\">switch case<\/a><\/td><\/tr><tr><td><a href=\"https:\/\/java.nosoyia.es\/?page_id=236\">HashSet<\/a><\/td><td><a href=\"https:\/\/java.nosoyia.es\/?page_id=250\">HashMap<\/a><\/td><td><a href=\"https:\/\/java.nosoyia.es\/?page_id=261\">M\u00e9todos.<\/a><\/td><\/tr><tr><td><a href=\"https:\/\/java.nosoyia.es\/?page_id=270\">Clases<\/a><\/td><td><a href=\"https:\/\/java.nosoyia.es\/?page_id=280\">Archivos<\/a><\/td><td><a href=\"https:\/\/java.nosoyia.es\/?page_id=299\" data-type=\"page\" data-id=\"270\">Entorno gr\u00e1fico Swing<\/a><\/td><\/tr><tr><td><a href=\"https:\/\/java.nosoyia.es\/?page_id=307\">JFrame (Ventanas)<\/a><\/td><td><a href=\"https:\/\/java.nosoyia.es\/?page_id=321\">Componentes b\u00e1sicos.<\/a><\/td><td><\/td><\/tr><\/tbody><\/table><\/figure>\n","protected":false},"excerpt":{"rendered":"<p>Correspondencia en Python &#8212;&gt; La captura de errores, va a permitir que si durante la ejecuci\u00f3n del programa se prev\u00e9 que pueda ocurrir alg\u00fan imprevisto, no se vea detenido el normal funcionamiento del c\u00f3digo y se reconvierta el error. Por ejemplo si el programa espera que se introduzca un determinado tipo de dato, por ejemplo [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-81","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/java.nosoyia.es\/index.php?rest_route=\/wp\/v2\/pages\/81","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/java.nosoyia.es\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/java.nosoyia.es\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/java.nosoyia.es\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/java.nosoyia.es\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=81"}],"version-history":[{"count":7,"href":"https:\/\/java.nosoyia.es\/index.php?rest_route=\/wp\/v2\/pages\/81\/revisions"}],"predecessor-version":[{"id":94,"href":"https:\/\/java.nosoyia.es\/index.php?rest_route=\/wp\/v2\/pages\/81\/revisions\/94"}],"wp:attachment":[{"href":"https:\/\/java.nosoyia.es\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=81"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}