DEV Community

Java Efetivo (livro)
Java Efetivo (livro)

Posted on

Item 70: Utilize exceções verificadas para condições recuperáveis e exceções de runtime para erros de programação

Tipos de exceções em Java:

Exceções Verificadas: para condições recuperáveis das quais o chamador pode se recuperar.
Exceções de Runtime: para erros de programação, como violação de pré-condições (por exemplo, acessar um índice inválido de um array).
Erros: geralmente reservados para a JVM e não devem ser usados por desenvolvedores.

Exceções Verificadas vs. Exceções de Runtime:

Use exceções verificadas se o código chamador puder tomar uma ação para resolver a situação.

Use exceções de runtime para indicar falhas no contrato da API, que devem ser corrigidas pelo programador.

// Exemplo de exceção verificada (condição recuperável)
public void readFile(String filePath) throws IOException {
    // código para leitura do arquivo
}

// Exemplo de exceção de runtime (erro de programação)
public int getElement(int[] array, int index) {
    if (index < 0 || index >= array.length) {
        throw new ArrayIndexOutOfBoundsException("Index out of bounds");
    }
    return array[index];
}

Enter fullscreen mode Exit fullscreen mode

Forneça métodos auxiliares em exceções verificadas:

Exceções verificadas devem incluir métodos para ajudar o chamador a lidar com a condição excepcional.

Exemplo: se uma compra falhar por saldo insuficiente, forneça o valor do déficit para que o chamador possa exibir essa informação.

public class InsufficientFundsException extends Exception {
    private final double deficit;

    public InsufficientFundsException(double deficit) {
        super("Saldo insuficiente: falta " + deficit);
        this.deficit = deficit;
    }

    public double getDeficit() {
        return deficit;
    }
}

Enter fullscreen mode Exit fullscreen mode

Resumo
Use exceções para situações excepcionais e não como um fluxo de controle alternativo.
Diferencie entre exceções verificadas e de runtime para indicar ao chamador o tipo de tratamento necessário.
Inclua métodos auxiliares nas exceções verificadas para fornecer informações úteis ao chamador, facilitando a recuperação.
Esses princípios ajudam a manter o código mais claro, eficiente e fácil de depurar.

Hostinger image

Get n8n VPS hosting 3x cheaper than a cloud solution

Get fast, easy, secure n8n VPS hosting from $4.99/mo at Hostinger. Automate any workflow using a pre-installed n8n application and no-code customization.

Start now

Top comments (0)

AWS Security LIVE!

Join us for AWS Security LIVE!

Discover the future of cloud security. Tune in live for trends, tips, and solutions from AWS and AWS Partners.

Learn More

👋 Kindness is contagious

Engage with a wealth of insights in this thoughtful article, valued within the supportive DEV Community. Coders of every background are welcome to join in and add to our collective wisdom.

A sincere "thank you" often brightens someone’s day. Share your gratitude in the comments below!

On DEV, the act of sharing knowledge eases our journey and fortifies our community ties. Found value in this? A quick thank you to the author can make a significant impact.

Okay