Sobes.tech
Middle

¿Qué métodos existen para manejar excepciones verificadas?

sobes.tech AI

Respuesta de la IA

  • Usar el bloque try-catch: permite capturar excepciones y manejarlas, evitando que el programa termine de forma inesperada.
  • Declarar que un método lanza una excepción, usando la palabra clave throws en la firma del método: esto transfiere la responsabilidad del manejo al código que llama.
  • Envolver una excepción verificable en una no verificable: permite lanzar la excepción sin manejo explícito, pero puede ocultar un problema real.

Ejemplo de uso de try-catch:

// Ejemplo de uso de try-catch para manejar una excepción verificable
try {
    // Código que puede lanzar una excepción verificable (por ejemplo, IOException)
    FileReader file = new FileReader("my_file.txt");
    // Trabajar con el archivo...
} catch (IOException e) {
    // Manejo de IOException
    e.printStackTrace(); // Mostrar la pila de llamadas para depuración
    System.err.println("Error al trabajar con el archivo: " + e.getMessage());
}

Ejemplo de uso de throws:

// Ejemplo de uso de throws en la firma del método
public void readFile(String fileName) throws IOException {
    FileReader file = new FileReader(fileName);
    // Trabajar con el archivo...
}

// El código que llama debe manejar IOException o declararla en su propia firma
public void processFile(String filePath) {
    try {
        readFile(filePath);
    } catch (IOException e) {
        System.err.println("Error al leer el archivo: " + e.getMessage());
    }
}

Ejemplo de envolver en una excepción no verificable:

// Ejemplo de envolver una excepción verificable en una no verificable
public void unsafeOperation() {
    try {
        // Código que puede lanzar una excepción verificable
        throw new IOException("Ejemplo de IOException");
    } catch (IOException e) {
        // Convertir la excepción verificable en una no verificable
        throw new RuntimeException("Se detectó un error en la operación", e);
    }
}