Lanzamiento y captura de excepciones

¿Qué son las excepciones?

En el mundo de la programación, una excepción es un evento que ocurre durante la ejecución de un programa que interrumpe el flujo normal de las instrucciones del programa.1 En otras palabras, es una señal de que algo inesperado ha sucedido.

Lanzamiento de excepciones

Cuando ocurre un error o una condición excepcional, el programa puede "lanzar" una excepción. Esto esencialmente significa que el programa crea un objeto de excepción que contiene información sobre el error.

Captura de excepciones

Después de que se lanza una excepción, el programa puede "capturarla" y manejarla. Esto implica ejecutar un bloque de código especial diseñado para lidiar con el error. Si no se captura una excepción, puede provocar que el programa finalice de forma abrupta.

¿Por qué utilizar excepciones?

  • Manejo de errores: Las excepciones proporcionan una forma estructurada de manejar los errores, lo que hace que el código sea más organizado y fácil de mantener.
  • Robustez: Al manejar las excepciones, puede evitar que su programa se bloquee debido a errores inesperados.
  • Legibilidad: Las excepciones pueden mejorar la legibilidad del código al separar el código normal del código de manejo de errores.

Ejemplos en diferentes lenguajes de programación

A continuación, se muestran ejemplos de lanzamiento y captura de excepciones en C++, C#, Java y Python:

C++

C++
#include <iostream>
#include <stdexcept>

int dividir(int numerador, int denominador) {
    if (denominador == 0) {
        throw std::runtime_error("División por cero");
    }
    return numerador / denominador;
}

int main() {
    try {
        int resultado = dividir(10, 0);
        std::cout << "Resultado: " << resultado << std::endl;
    } catch (const std::runtime_error& e) {
        std::cerr << "Error: " << e.what() << std::endl;
    }
    return 0;
}

C#

C#
using System;

public class EjemploExcepciones {
    public static int Dividir(int numerador, int denominador) {
        if (denominador == 0) {
            throw new DivideByZeroException("División por cero");
        }
        return numerador / denominador;
    }

    public static void Main(string[] args) {
        try {
            int resultado = Dividir(10, 0);
            Console.WriteLine($"Resultado: {resultado}");
        } catch (DivideByZeroException e) {
            Console.WriteLine($"Error: {e.Message}");
        }
    }
}

Java

Java
public class EjemploExcepciones {
    public static int dividir(int numerador, int denominador) {
        if (denominador == 0) {
            throw new ArithmeticException("División por cero");
        }
        return numerador / denominador;
    }

    public static void main(String[] args) {
        try {
            int resultado = dividir(10, 0);
            System.out.println("Resultado: " + resultado);
        } catch (ArithmeticException e) {
            System.err.println("Error: " + e.getMessage());
        }
    }
}

Python

Python
def dividir(numerador, denominador):
    if denominador == 0:
        raise ZeroDivisionError("División por cero")
    return numerador / denominador

try:
    resultado = dividir(10, 0)
    print(f"Resultado: {resultado}")
except ZeroDivisionError as e:
    print(f"Error: {e}")

Puntos clave

  • Cada lenguaje tiene su propia sintaxis para lanzar y capturar excepciones, pero los conceptos subyacentes son los mismos.
  • Es importante manejar las excepciones de forma adecuada para evitar que su programa se bloquee.
  • Las excepciones pueden ser una herramienta poderosa para crear un código más robusto y fiable.


Comentarios

Entradas más populares de este blog

Tratamiento de excepciones

Agregación

Composición