Explorando el código, creando soluciones, y compartiendo conocimientos en el fascinante mundo del desarrollo de software.

domingo, 11 de febrero de 2024

Manejo de Excepciones en Java: try-catch-finally y Excepciones Personalizadas

Manejo de Excepciones en Java: try-catch-finally y Excepciones Personalizadas

Manejo de Excepciones en Java

try-catch-finally

En Java, las excepciones son eventos que pueden ocurrir durante la ejecución de un programa y que pueden afectar su flujo normal. El bloque try-catch-finally se utiliza para manejar estas excepciones. Veamos un ejemplo:

public class ManejoExcepciones { public static void main(String[] args) { try { // Código que podría lanzar una excepción int resultado = dividir(10, 0); System.out.println("El resultado es: " + resultado); } catch (ArithmeticException e) { // Captura la excepción específica System.out.println("Error: División por cero."); } finally { // Bloque que siempre se ejecuta, independientemente de si hay excepciones o no System.out.println("Este bloque siempre se ejecuta."); } } // Método que puede lanzar una excepción public static int dividir(int numerador, int denominador) { return numerador / denominador; } }

En este ejemplo, el método dividir intenta realizar una división que podría resultar en una excepción de tipo ArithmeticException. El bloque try contiene el código propenso a excepciones, el bloque catch maneja la excepción capturando y manejando el error, y el bloque finally se ejecuta siempre, independientemente de si se lanza una excepción o no.

Creación de Excepciones Personalizadas

Además de manejar las excepciones integradas en Java, también puedes crear tus propias excepciones personalizadas para situaciones específicas de tu aplicación. Aquí tienes un ejemplo:

// Excepción personalizada public class SaldoInsuficienteException extends Exception { public SaldoInsuficienteException(String mensaje) { super(mensaje); } } // Clase que utiliza la excepción personalizada public class CuentaBancaria { private double saldo; public CuentaBancaria(double saldoInicial) { this.saldo = saldoInicial; } public void retirar(double cantidad) throws SaldoInsuficienteException { if (cantidad <= saldo) { saldo -= cantidad; } else { // Lanza la excepción personalizada throw new SaldoInsuficienteException("Saldo insuficiente para realizar el retiro"); } } public double obtenerSaldo() { return saldo; } }

En este ejemplo, la clase SaldoInsuficienteException extiende la clase base Exception y se utiliza para indicar un error específico de saldo insuficiente. La clase CuentaBancaria utiliza esta excepción personalizada en el método retirar.

try { CuentaBancaria cuenta = new CuentaBancaria(1000); cuenta.retirar(1200); } catch (SaldoInsuficienteException e) { System.out.println("Error: " + e.getMessage()); }

Este código intenta realizar un retiro de una cuenta bancaria y maneja la excepción personalizada SaldoInsuficienteException si el saldo es insuficiente.


Navegación entre lecciones



© 2024 Programar desde Cero


No hay comentarios:

Publicar un comentario

Java Iniciación en Java Hola mundo en Java Sintaxis básica de Java Orientación a objetos en Java Manejo de excepciones en Java Java desde Cero Colecciones en Java Manejo de Archivos en Java Entrada/Salida en Java Hilos y concurrencia en Java Programación Funcional en Java Programación Orientada a Objetos (OOP) en Java Manejo de fechas y tiempos Persistencia de datos en Java Desarrollo Web en Java Manejo de dependencias Gradle Maven JUnit Git Java Desarrollo de servicios web en Java Patrones de Diseño en Java Principios Básicos de Seguridad en Java Principios SOLID en Java Frameworks populares en Java Ciclo de vida de una aplicación Java Desarrollo Ágil Base de Datos en Java Hola mundo en COBOL Estructura básica de COBOL Sintaxis Básica de COBOL Manipulación de archivos en COBOL Búsqueda en Archivos Secuenciales COBOL Ordenación y Combinación de Archivos COBOL Manejo de Errores en COBOL Subprogramas y Modularidad en COBOL Archivos Indexados en COBOL Clasificación y Fusión de Archivos en COBOL Lectura y Escritura de Archivos Secuenciales COBOL IDE Desarrollo de Software Programación Java Plugin Eclipse Desarrollo Integrado Eclipse IDE Java Development Desarrollo de Aplicaciones Programación en Eclipse Desarrollo Ágil Java EE Desarrollo Web Desarrollo Móvil Eclipse Marketplace Eclipse Plugins JavaFX Desarrollo GUI Git Control de Versiones GitHub Git Bash Git Commands Git Workflow Branching Merging Repositorios Commit Git Branch Git Pull Git Push Git Clone Git Merge Conflictos en Git Git Log Git Tag Git Remote Visual Studio Code IDE Desarrollo de Software Extensiones Editor de Código Programación Configuración VSC Snippets Depuración Control de Versiones Integración Git Atajos de Teclado Temas Productividad Extensiones VSC Lenguajes de Programación