🔧 Programmierung 🕛 vor 1 Jahr 3 Min Lesezeit
0

Item 74 - Documente todas as exceções lançadas por cada método

↗ Quelle (dev.to)
🗣️ Stimme:

Importância:




  • A documentação das exceções lançadas é essencial para o uso correto de métodos.

  • Sem a documentação adequada, outros programadores podem ter dificuldade em utilizar suas classes ou interfaces.



Regras para documentação:




  • 1. Use a tag @throws no Javadoc:

  • Documente todas as exceções verificadas e não verificadas.




CODE
/**
* Calcula a raiz quadrada de um número.
*
* @param value o número cuja raiz quadrada será calculada
* @return a raiz quadrada do número
* @throws IllegalArgumentException se o número for negativo
*/
public double calculateSquareRoot(double value) {
if (value < 0) {
throw new IllegalArgumentException("O número não pode ser negativo.");
}
return Math.sqrt(value);
}







Declare exceções verificadas individualmente:




  • Inclua-as na cláusula throws e documente as condições em que são lançadas.

  • Não use superclasses genéricas como Exception ou Throwable.




CODE
/**
* Lê dados de um arquivo.
*
* @param file o arquivo a ser lido
* @return os dados lidos
* @throws IOException se ocorrer um erro de I/O
*/
public String readFile(File file) throws IOException {
// Implementação...
}







Documente exceções não verificadas:**




  • Mesmo que a linguagem não exija, descreva as exceções não verificadas para ajudar os programadores a evitarem erros.




CODE
/**
* Divide dois números.
*
* @param numerator o numerador
* @param denominator o denominador
* @return o resultado da divisão
* @throws ArithmeticException se o denominador for zero
*/
public int divide(int numerator, int denominator) {
if (denominator == 0) {
throw new ArithmeticException("Divisão por zero não é permitida.");
}
return numerator / denominator;
}







Documentação em nível de classe:




  • Para exceções comuns, como NullPointerException, documente no nível da classe quando aplicável a vários métodos.




CODE
/**
* Esta classe realiza operações matemáticas.
*
* <p>Todos os métodos desta classe lançam uma {@code NullPointerException} se
* algum parâmetro for {@code null}.</p>
*/
public class MathOperations {
// Implementação...
}







Exceções a essas regras:

Método main:




  • Pode declarar throws Exception, pois é chamado pela JVM



CODE
public static void main(String[] args) throws Exception {
// Implementação...
}






Revisões futuras:




  • Exceções não verificadas adicionadas após uma revisão não violam a compatibilidade, mas devem ser documentadas se possível.



Boas práticas:

Não declare exceções não verificadas em throws:




  • A ausência de throws para exceções não verificadas destaca visualmente que são não verificadas.



CODE
public void doSomething() {
// Pode lançar uma NullPointerException, mas não a declaramos em "throws".
}






Documente exceções não verificadas como precondições:




  • Descreva as condições necessárias para que o método funcione sem lançar exceções.



Evite classes genéricas em throws:




  • Declarações como throws Exception ou throws Throwable escondem detalhes importantes.



Evitar:




CODE
public void doSomething() throws Exception {
// Não recomendado
}







Resumo de implementação:

Use @throws para documentar todas as exceções:




CODE
/**
* Processa uma lista de itens.
*
* @param items a lista de itens a ser processada
* @throws NullPointerException se a lista for {@code null}
* @throws IllegalArgumentException se a lista estiver vazia
*/
public void processItems(List<String> items) {
if (items == null) {
throw new NullPointerException("A lista não pode ser null.");
}
if (items.isEmpty()) {
throw new IllegalArgumentException("A lista não pode estar vazia.");
}
// Processamento...
}







Documente no nível da classe para exceções recorrentes:




CODE
/**
* Classe responsável por operações em arquivos.
*
* <p>Todos os métodos desta classe lançam uma {@code NullPointerException}
* se um arquivo {@code null} for passado.</p>
*/
public class FileOperations {
// Métodos...
}



Vollständiger Original-Artikel
Den kompletten Beitrag mit allen Details direkt auf dev.to lesen.
↗ Original-Artikel auf dev.to lesen
Wie bewertest du diesen Beitrag?
1 Klick Feedback
Teilen mit Netzwerk & Team:

Community-Analysen & Experten-Meinungen 0

Verfasse deine eigene Analyse, teile Workarounds oder diskutiere diesen Vorfall im Blog.
Noch keine Community-Analyse verfasst. Markiere einen Textabschnitt oder klicke oben auf Eigene Analyse verfassen“!
Community Pulse: Relevanz-Einschätzung
1 Klick Experten-Votum
🔴 Akute Relevanz 0%
🟡 In Evaluierung 0%
🟢 Keine Auswirkung 0%
Spannende Innovation 0%
Verwandte Story-Cluster & Quellen (Vektor-KI)
Port 8095 Engine
6 Quellen
CVE-2022-44255 | TOTOLINK LR350 9.3.5u.6369_B20220309 buffer overflow (EUVD-2022-47204)
2 Quellen
CVE-2026-68426 | Linux Kernel up to 6.18.41/7.1.5/7.2-rc3 xfrm validate_xmit_skb_list use after free (Nessus ID 346426)
1 Quelle
Windows 11 Probleme mit gültiger Domänenanmeldung nach September-Update [Workaround]
Ähnliche Beiträge
🔍 Verwandte News

Auch interessante Nachrichten Item 74 - Documente todas as exceções lançadas por cada método

Thematisch verwandte Begriffe: Item, Documente, todas, exceções · 6 Treffer

Laden...

Beiträge werden geladen ...

Laden...

Videos werden geladen ...

Laden...

Beiträge werden geladen ...

Laden...

Videos werden geladen ...

Laden...

Beiträge werden geladen ...

Laden...

Videos werden geladen ...

Laden...

Beiträge werden geladen ...

Laden...

Videos werden geladen ...