0% encontró este documento útil (0 votos)
17 vistas5 páginas

Uso efectivo de try-catch en Java

Cargado por

palermo jimenez
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
17 vistas5 páginas

Uso efectivo de try-catch en Java

Cargado por

palermo jimenez
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

El bloque try-catch en Java (y en Android) se utiliza para manejar excepciones,

permitiendo que tu programa reaccione adecuadamente a errores en tiempo de ejecución


en lugar de fallar abruptamente. Aquí tienes ejemplos que van desde lo más básico hasta
lo más avanzado.

1. Uso básico de try-catch

El uso más sencillo es capturar una excepción y mostrar un mensaje.

Ejemplo:
java
Copiar código
try {
int resultado = 10 / 0; // Esto lanza una excepción de división
por cero
} catch (ArithmeticException e) {
[Link]("Error: División por cero no permitida.");
}

Detalles:

• Captura la excepción específica ArithmeticException.


• Permite que el programa continúe ejecutándose después del error.

2. Captura de múltiples excepciones

Puedes manejar diferentes tipos de excepciones en bloques separados de catch.

Ejemplo:
java
Copiar código
try {
int[] numeros = {1, 2, 3};
[Link](numeros[5]); // Esto lanza
ArrayIndexOutOfBoundsException
} catch (ArrayIndexOutOfBoundsException e) {
[Link]("Error: Índice fuera de rango.");
} catch (Exception e) {
[Link]("Error general: " + [Link]());
}

Detalles:

• El primer catch captura excepciones específicas.


• El último catch captura cualquier excepción no manejada previamente.
3. Captura de múltiples excepciones en un solo bloque (|)

Desde Java 7, puedes combinar excepciones en un solo bloque catch.

Ejemplo:
java
Copiar código
try {
String texto = null;
[Link]([Link]()); // Esto lanza
NullPointerException
} catch (NullPointerException | ArithmeticException e) {
[Link]("Error: Excepción capturada - " +
[Link]().getSimpleName());
}

Detalles:

• Útil si las excepciones comparten la misma lógica de manejo.

4. Uso de finally para limpieza de recursos

El bloque finally siempre se ejecuta, ya sea que ocurra una excepción o no. Se utiliza
para liberar recursos como archivos, conexiones de red, etc.

Ejemplo:
java
Copiar código
FileInputStream fis = null;
try {
fis = new FileInputStream("[Link]");
int data = [Link]();
[Link]("Dato leído: " + data);
} catch (IOException e) {
[Link]("Error al manejar el archivo.");
} finally {
try {
if (fis != null) [Link]();
[Link]("Recurso cerrado.");
} catch (IOException e) {
[Link]("Error al cerrar el archivo.");
}
}

Detalles:

• Asegura que los recursos sean liberados incluso si ocurre una excepción.
5. Uso avanzado con try-with-resources

Desde Java 7, puedes usar try-with-resources para manejar automáticamente


recursos que implementan AutoCloseable.

Ejemplo:
java
Copiar código
try (FileInputStream fis = new FileInputStream("[Link]")) {
int data = [Link]();
[Link]("Dato leído: " + data);
} catch (IOException e) {
[Link]("Error al manejar el archivo: " +
[Link]());
}

Detalles:

• Los recursos se cierran automáticamente al final del bloque try.


• Evita la necesidad de un bloque finally separado.

6. Lanzar excepciones personalizadas

Puedes definir y lanzar tus propias excepciones para escenarios específicos.

Ejemplo:
java
Copiar código
class MiExcepcion extends Exception {
public MiExcepcion(String mensaje) {
super(mensaje);
}
}

public class Main {


public static void main(String[] args) {
try {
lanzarExcepcionPersonalizada();
} catch (MiExcepcion e) {
[Link]("Excepción personalizada capturada: " +
[Link]());
}
}

static void lanzarExcepcionPersonalizada() throws MiExcepcion {


throw new MiExcepcion("Esto es un error personalizado.");
}
}

Detalles:
• Define una clase que extienda Exception.
• Usa throw para lanzar la excepción.

7. Re-lanzar excepciones

En algunos casos, puedes capturar una excepción, realizar alguna acción, y luego volver
a lanzarla.

Ejemplo:
java
Copiar código
try {
procesarArchivo();
} catch (IOException e) {
[Link]("Error al procesar archivo: " +
[Link]());
throw e; // Vuelve a lanzar la excepción
}

static void procesarArchivo() throws IOException {


throw new IOException("Archivo no encontrado.");
}

Detalles:

• Útil cuando deseas agregar contexto antes de propagar el error.

8. Manejo de excepciones específicas de Android

En Android, puedes manejar excepciones relacionadas con APIs específicas, como


archivos, bases de datos o red.

Ejemplo: Manejo de excepciones al leer un archivo en Android


java
Copiar código
try {
FileInputStream fis = openFileInput("[Link]");
int data = [Link]();
[Link]();
} catch (FileNotFoundException e) {
Log.e("Archivo", "Archivo no encontrado.");
} catch (IOException e) {
Log.e("Archivo", "Error al leer el archivo.");
}

9. Agregar más contexto a las excepciones

Puedes capturar una excepción, agregar información adicional, y volver a lanzarla.


Ejemplo:
java
Copiar código
try {
procesarDatos();
} catch (IOException e) {
throw new RuntimeException("Error al procesar datos: " +
[Link](), e);
}

static void procesarDatos() throws IOException {


throw new IOException("Datos corruptos.");
}

Detalles:

• Útil para mejorar el diagnóstico de errores en sistemas complejos.

Errores comunes al usar try-catch

1. Capturar excepciones genéricas innecesariamente:

java
Copiar código
try {
// Código
} catch (Exception e) { // Poco específico
[Link]();
}

Solución: Captura excepciones específicas.

2. Omitir el bloque finally o try-with-resources para limpiar recursos.


3. No manejar correctamente excepciones verificadas: Algunas APIs requieren
que manejes excepciones con try-catch o declarando throws.

Con estas herramientas puedes usar try-catch en Java y Android de forma efectiva y
adecuada para diferentes escenarios.

También podría gustarte