throw new illegalargumentexception en Java: Concepto, Implementación y Mejores Prácticas