sería ser atrapado por el primero, pero también lo harían un montón de otras excepciones. No deberías atrapar más de lo que realmente quieres.
La segunda es mejor si realmente tiene de atraparlo ... pero por lo general esto indica un error en el código de llamada. A veces este es un caso de otro método más arriba que no valida sus argumentos, etc. En un mundo ideal, cada vez que se lanza IllegalArgumentException
debe haber una manera para que la persona que llama valide el valor antes de pasarlo, o llame a un versión que fallará de manera no excepcional (por ejemplo, el patrón TryParse
en .NET, que es ciertamente más difícil en Java sin los parámetros out
). Ese no es siempre el caso, pero cada vez que obtienes un IllegalArgumentException
vale la pena comprobar si podría evitarlo comprobando los valores antes de llamar al método.
A menos que la biblioteca que lanza es necesario volver a examinar la excepción en un nivel superior antes de que salga hacia arriba a la persona que llama. – tar