Vida

Los bloques try-catch-finally en Java

Los bloques try-catch-finally en Java

Para que un programa Java sea lo más robusto posible, debe ser capaz de manejar excepciones. El compilador hace su parte al no permitirle compilar un programa hasta que sea sintácticamente correcto y también puede señalar excepciones comprobadas que deben manejarse. Pero las excepciones que probablemente causen más dolores de cabeza son las que aparecen una vez que el programa se está ejecutando. Para ayudar a manejar estas excepciones, el lenguaje Java proporciona los bloques try-catch-finally.

El bloque de prueba

los

tratarel bloque encierra cualquier declaración que pueda causar una excepción. Por ejemplo, si está leyendo datos de un archivo utilizando el

FileReaderclase, se espera que manejes el

IOExceptionsasociado con el uso de un

FileReaderobjeto, por ejemplo,

FileNotFoundExceptiony

IOException. Para asegurarse de que esto suceda, puede colocar las declaraciones que se ocupan de crear y usar el

FileReaderobjeto dentro de un

tratarbloque: Sin embargo, el código está incompleto porque, para que se maneje la excepción, necesitamos un lugar para que se capture. Esto sucede en el

Bloque de captura. El bloque de captura

los

capturalos bloques proporcionan un lugar para manejar la excepción lanzada por las declaraciones dentro de un

tratarbloquear. los

capturael bloque se define directamente después del

tratarbloquear. Debe especificar el tipo de excepción que está manejando. Por ejemplo, el

FileReaderEl objeto definido en el código anterior es capaz de arrojar un

FileNotFoundExceptiono un

IOException. Podemos especificar dos

capturabloques para manejar ambas excepciones: en el

FileNotFoundExceptioncatchbloqueemos un código para pedirle al usuario que nos encuentre el archivo y luego intente leerlo nuevamente. En el

IOExceptioncatch block, podríamos pasar el error de E / S al usuario y pedirle que pruebe otra cosa. De cualquier manera, hemos proporcionado una forma para que el programa detecte una excepción y la maneje de manera controlada.
En Java SE 7, se hizo posible manejar múltiples excepciones en una

capturabloquear. Si el código que quisiéramos colocar en los dos

capturalos bloques anteriores eran exactamente los mismos, podríamos escribir el código de esta manera: para hacer un poco de limpieza en lo que respecta a los recursos, podemos agregar un bloque finalmente. Después de todo, queremos publicar el archivo que hemos estado leyendo una vez que hayamos terminado.

El finalmente bloque

Las declaraciones en el bloque finalmente siempre se ejecutan. Esto es útil para limpiar recursos en caso de que el bloque try se ejecute sin una excepción y en los casos en que haya una excepción. En ambas eventualidades, podemos cerrar el archivo que hemos estado usando.

El último bloque aparece directamente después del último bloque de captura: