Especificar un sufijo de Excepción en las clases de excepción me parece un olor a código (Información redundante: el resto del nombre implica un estado de error y hereda de Excepción). Sin embargo, también parece que todos lo hacen y parece ser una buena práctica.
Estoy buscando entender por qué esta es una buena práctica.
Ya he visto y leído la pregunta por qué las excepciones suelen tener la excepción de sufijo en el nombre de la clase
La pregunta es para PHP y, si bien las respuestas son probablemente válidas para Java. ¿Hay otros argumentos o es realmente tan simple como diferenciarlos explícitamente?
Si tomamos los ejemplos de la pregunta anterior, ¿podría realmente haber clases en Java con el nombre FileNoFoundque no sea una excepción? Si pudiera haberlo, ¿merece sufijo Exception?
Mirando una jerarquía rápida en eclipse de Exception, efectivamente, la gran mayoría de ellos tienen el sufijo de excepción, pero hay algunas excepciones. javassistes un ejemplo de una biblioteca que parece tener algunas excepciones sin el sufijo, por ejemplo BadByteCode,BadHttpRequest etc.
BouncyCastle es otra lib con excepciones como CompileError
También busqué en Google un poco con poca información sobre el tema.
FileNotFound ArrayIndexOutOfBoundsy OutOfMemoryson más observaciones / descripciones, pero luego se aplican al sustantivo Exception.
Exceptionsufijo, o deberíamos hacer excepciones para excepciones excepcionales?" ;)