Tipos de datos y excepciones en Java
Jim White
Java Developer
Error es un problema graveimport java.util.*;
public class CauseOutOfMemory {
public static void main(String[] args) {
List<Long> numbers = new ArrayList<Long>();
long counter = 0;
while (true) {
numbers.add(counter);
counter++;
}
}
}
Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
at java.base/java.lang.Long.valueOf(Long.java:1204)
at foo/exceptions.CauseOutOfMemory.main(CauseOutOfMemory.java:12)
| Excepción comprobada | Excepción en tiempo de ejecución ("unchecked") | |
|---|---|---|
| Requiere gestión | Sí | No |
| Causa general | Cosas fuera de nuestro control | Errores de programación |
| Recuperación | Suele poder recuperarse si se anticipa | Normalmente no recuperable |
| Mecanismo de recuperación | try/catch o throws | Mejor programar con cuidado para evitarlas |
| Ejemplo de excepción | Archivo no encontrado | Índice de array fuera de rango |
Exception que no son subclases de RuntimeException son excepciones comprobadasFileNotFoundException)RuntimeException es la superclase de todas las excepciones no comprobadasIndexOutOfBoundsException)ArithmeticException)| Subclase de RuntimeException | Cuándo se lanza |
|---|---|
| ArithmeticException | Cálculos inválidos como dividir entre 0 |
| IndexOutOfBoundsException | El índice usado en un array, String, etc. está fuera de rango |
| NegativeArraySizeException | Intentar crear un array con tamaño negativo |
int y = 5/0; // Código que provoca ArithmeticException
int[] list = new int[-1]; // Código que provoca NegativeArraySizeException
Exception in thread "main" java.lang.ArithmeticException: / by zero
Exception in thread "main" java.lang.NegativeArraySizeException: -1
public class LoadClass {
public static void main(String[] args) {
Class myClass = Class.forName("com.mysql.Driver");
}
}
LoadClass.java:3: error: unreported exception ClassNotFoundException;
debe capturarse o declararse con throws
Class myClass = Class.forName("com.mysql.Driver");
^
1 error
Tipos de datos y excepciones en Java