Solo un largo comentario sobre la respuesta del kit de herramientas.
La razón Las excepciones comprobadas son un problema es que pueden dar lugar a un código como éste:
try {
Something that throws an exception
} catch (Exception e) {}
Esto es peor de los casos. En primer lugar, no están registrando que están atrapando la excepción. Esto sucede mucho, y es casi OBLIGADO por excepciones muy estúpidas como la de Thread.sleep(), arroja InterruptedException que DEBE ser atrapada, pero el 99% del tiempo no te puede importar menos si tienes uno o no .
En el caso anterior, se complica por el hecho de que las personas tienden a simplemente detectar "Excepción" si hay más de una tirada. Eso significa que, incluso si se lanza una excepción crítica sin marcar, será atrapada e ignorada, lo que hace que sea virtualmente imposible encontrar el problema.
Más de una vez he estado en equipos que tuvieron que pasar aproximadamente un mes-hombre tratando de localizar errores ocultos de esta manera.
Es un buen concepto que se vuelve horrible cuando se agrega el hecho de que los humanos son los que deben implementarlo de manera responsable.
Esa es una mala descripción de la diferencia entre el tiempo de ejecución/excepciones marcadas. Eso es ** nada ** la diferencia entre ellos. Hay 'RuntimeException's que * debería * atrapar, y hay excepciones comprobadas que puede evitar haciendo comprobaciones adicionales antes de llamar al método. – Aaron
Ex1: 'NumberFormatException' es uno que normalmente debería capturar. Capturar 'NumberFormatException' es mejor que tratar de verificar el formato de un' String' antes de convertirlo a un número, ya que entonces * todavía * puedes terminar con 'NumberFormatException' que ahora no estás capturando. – Aaron
Ex2: 'IOException' es una que muchas API lanzan por todas partes. Esta es probablemente la excepción más atrapada para mí y la excepción más atrapada que veo en el código de otros también. Hay muchos lugares en los que se ve obligado a atrapar 'IOException' o sus subclases, donde nunca se lanzarán en algunos contextos de uso de la API que lo arroja. – Aaron