👨‍💻
Coding Library
  • 👨‍💻Coding Library
  • 👾Linux
    • Basic Commands
    • Other commands
      • Ls
      • Mv
      • Chmod
      • Ln
      • Cat
      • Wc
      • Grep
      • Sed
      • Find
    • Sistema de ficheros
      • Inodos
  • 📦Git
    • Page 3
  • 🖊️Vim
    • Vim Basics
      • Gramatica de Vim
      • Moviendote por un archivo
    • Todo y mas
  • 🏛️C
    • Estructuras de datos
      • Listas Enlazadas
      • Colas
      • Pilas
      • Arboles
    • Valgrind
    • Operadores de bits
    • Procesos e Hilos
      • Fork
      • Wait
      • Waitpid
      • Semáforos
      • Estructura sigaction
      • Signals
    • MiniLibX
      • Ventanas (windows)
      • Imprimir Pixels
      • Imagenes
      • Colores
      • Eventos
      • Loops (bucles)
      • Leer imagenes
    • Readline
    • Funciones
      • opendir
      • access
    • Network Programming
      • Structs
      • Llamadas al sistema
      • Synchronous I/O Multiplexing
        • kqueue
  • 🌃C++
    • Clases
      • Herencia
      • Shallow and deeps copies
      • Clases abstractas y Interfaces
      • Reasignar operadores
    • Punteros y referencias
    • Manejo de ficheros
    • Punteros a funciones
    • Excepciones
    • Casting
    • Templates
    • Templated Containers
      • Iterators
      • std::vector
      • std::list
      • std::map
  • 🧠Pyhton
    • Sintaxis basica
    • Scripts
    • Tipos de datos
      • Listas
      • Set
      • Diccionarios
      • Generadores
    • Estructuras de control
      • Iterar con For
      • Iterar con zip
      • Iterar con enumerate
    • Map, Filter and Reduce
    • Funciones
    • Clases
      • Metodos
      • Herencia
    • Formateo con {} y format()
    • Decoradores
  • 📦JAVA
    • Conceptos basicos
    • Programacion estructurada
    • Clases predefinidas
    • POO
      • Clases
      • Herencia
      • Polimorfismo
      • Abstraccion
      • Encapsulacion
    • ArrayList
    • Excepciones
  • ⚒️HTML
    • HTML Basics
    • Elementos de bloque
      • Titulos y parrafos
      • Header, Main y Footer
      • Section, article y aside
    • Elementos en línea
    • Atributos
    • Enlaces <a>
    • Listas
    • Tablas
    • Formularios
      • Input
      • Select y datalist
      • GET y POST
    • Contenido embebido
      • Imagenes
      • Audio y video
      • Iframe
  • 🎨CSS
    • Introduccion
    • Selectores
    • Como funciona CSS
    • Box Model
    • Desbordamiento y Colapso de margenes
    • Display
    • Position
    • Medidas absolutas y relativas
  • 🟡JavaScript
    • Promesas
    • Async/Await
  • 📲Svelte
    • Componentes
    • Reactividad
    • Directivas
    • Eventos
  • 🖥️Sistemas
    • Particiones
  • 🕸️Redes
    • IP Adress
    • Subnet Mask
  • 🕷️Web Scrapping
    • Scrapy
      • Spiders
        • CrawlerSpider
      • Process data
      • Save data
        • CSV y JSON
        • SQLite
    • Splash
    • Selenium
Powered by GitBook
On this page
  • Tipos de Excepciones en Java
  • Bloques Finally
  • Try-With-Resources
  • Creación de Excepciones Personalizadas
  1. JAVA

Excepciones

PreviousArrayListNextHTML Basics

Last updated 1 year ago

En Java, las excepciones son objetos que representan situaciones excepcionales que pueden surgir durante la ejecución del programa. Estas situaciones pueden ser errores en tiempo de ejecución, como la división por cero o el acceso a un índice fuera de los límites de un array.

Tipos de Excepciones en Java

Java clasifica las excepciones en dos tipos principales: Excepciones verificadas (checked) y Excepciones no verificadas (unchecked).

Excepciones Verificadas (Checked Exceptions)

Estas son excepciones que deben ser manejadas explícitamente mediante un bloque try-catch o especificando que el método las arrojará (throws).

java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;

public class ManejoExcepciones {
    public static void main(String[] args) {
        try {
            BufferedReader reader = new BufferedReader(new FileReader("archivo.txt"));
            String linea = reader.readLine();
            System.out.println(linea);
            reader.close();
        } catch (IOException e) {
            System.out.println("Excepción IO: " + e.getMessage());
        }
    }
}

Excepciones No Verificadas (Unchecked Exceptions)

Estas son excepciones que no requieren un manejo explícito y generalmente son errores en tiempo de ejecución.

Ejemplo:

public class ManejoExcepciones {
    public static void main(String[] args) {
        int[] array = {1, 2, 3};
        System.out.println(array[5]); // Esto generará una ArrayIndexOutOfBoundsException
    }
}

Bloques Finally

El bloque finally se utiliza para contener código que debe ejecutarse siempre, independientemente de si se produce una excepción o no.

public class ManejoExcepciones {
    public static void main(String[] args) {
        try {
            // Código que podría generar una excepción
        } finally {
            // Código que se ejecutará siempre
        }
    }
}

El bloque finally se ejecuta después de que se completa el bloque try y, opcionalmente, después de que se maneje cualquier excepción con el bloque catch. En otras palabras, el orden de ejecución sería:

  1. El código dentro del bloque try se ejecuta.

  2. Si se lanza una excepción dentro del bloque try, se busca un bloque catch correspondiente. Si se encuentra, se ejecuta el código dentro del bloque catch.

  3. Después de que se completa el bloque try y, en su caso, el bloque catch, el bloque finally se ejecuta, independientemente de si se lanzó una excepción o no.

try {
    // Código en el bloque try
} catch (Exception e) {
    // Manejo de excepción en el bloque catch (si es necesario)
} finally {
    // Código en el bloque finally, que se ejecutará siempre
}

Try-With-Resources

Java 7 introdujo el bloque try-with-resources para gestionar automáticamente los recursos, como cerrar un archivo o una conexión, sin necesidad de un bloque finally.

try (BufferedReader reader = new BufferedReader(new FileReader("archivo.txt"))) {
    String linea = reader.readLine();
    System.out.println(linea);
} catch (IOException e) {
    System.out.println("Excepción IO: " + e.getMessage());
}

Creación de Excepciones Personalizadas

En algunas situaciones, es posible que desees crear tus propias excepciones personalizadas para manejar casos específicos en tu aplicación.

public class MiExcepcion extends Exception {
    public MiExcepcion(String mensaje) {
        super(mensaje);
    }
}
📦