Los errores más dificiles de capturar son los de "OutOfMemory" (quedarse sin memoria) ya que en muchos casos la aplicación queda en estado inconsistente.
A mi parecer si la aplicación se queda sin memoria es mejor terminarla, aunque muchas veces es imposible cambiar el código para hacerlo de manera limpia.
Como desarrolladores Java a veces vemos como la máquina virtual java se cuelga o se cae porque hacemos algo mal o por limitaciones del sistema.
La verdad no se muy bien que es lo que estes haciendo, pero podrias capturar el error un con try-catch.
public class RunOutOfMemory {
public static void main(String [] args) {
try {
long [] array = new long[Integer.MAX_VALUE];
System.out.println("Mi arreglo tiene un tamaño de: " + array.length);
}
catch(OutOfMemoryError e) {
System.out.println("El tamaño del arreglo excede el límite de la VM");
}
}
}O bien con
throw new OutOfMemoryError("El tamaño del arreglo excede el límite de la VM")Un saludo.