"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > IllegalArgumentException ou NullPointerException: qual exceção para um parâmetro nulo em métodos setter?

IllegalArgumentException ou NullPointerException: qual exceção para um parâmetro nulo em métodos setter?

Publicado em 2024-12-21
Navegar:400

IllegalArgumentException or NullPointerException: Which Exception for a Null Parameter in Setter Methods?

Quando lançar IllegalArgumentException ou NullPointerException para um parâmetro nulo

Ao definir métodos setter, os desenvolvedores geralmente enfrentam o dilema de lançar uma IllegalArgumentException ou um NullPointerException para um parâmetro nulo. Ambas as exceções parecem relevantes com base em suas descrições JavaDoc:

  • IllegalArgumentException: Indica um argumento ilegal ou inapropriado.
  • NullPointerException: Lançado quando null é usado de forma inadequada.

No entanto, a escolha apropriada é IllegalArgumentException (IAE) pelos seguintes motivos:

  • Uso pretendido: O NPE é destinado a erros de tempo de execução relacionados à desreferência nula, enquanto o IAE é designado para validação parâmetros.
  • Rastreamento enganoso: NPE em um rastreamento de pilha pode sugerir uma desreferência nula em vez de um valor de parâmetro incorreto.
  • Consistência: IAE é comumente usado para outros erros de parâmetros inválidos, portanto, consistência é preferível.
  • Inconsistências da API Java: Enquanto a API Java às vezes usa NPE para parâmetros nulos, sua inconsistência não deve ser emulada.

Portanto, para métodos setter onde null não é apropriado, IllegalArgumentException deve ser usado para transmitir a intenção da validação do parâmetro.

Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3