Escrevendo para o erro padrão

Java:
Escrevendo para o erro padrão

Como fazer:

Saída básica no stderr em Java

Java oferece uma maneira simples de escrever no stderr usando System.err.print() ou System.err.println(). Veja como fazer isso:

public class ExemploStdErr {
    public static void main(String[] args) {
        try {
            int divisao = 10 / 0;
        } catch (ArithmeticException e) {
            System.err.println("Erro: Não é possível dividir por zero.");
        }
    }
}

Saída de exemplo:

Erro: Não é possível dividir por zero.

Isso imprimirá diretamente a mensagem de erro no stream de erro padrão.

Usando um Logger para Tratamento Avançado de Erros

Para aplicações que precisam de um tratamento de erros mais sofisticado e logs, usar uma biblioteca de logging como SLF4J com Logback ou Log4J2 é comum. Isso permite mais flexibilidade na gestão da saída de erros, incluindo redirecionamento de arquivos, filtragem e formatação.

Exemplo com Logback

Primeiro, adicione a dependência para Logback no seu arquivo pom.xml (Maven) ou build.gradle (Gradle). Para Maven:

<dependency>
    <groupId>ch.qos.logback</groupId>
    <artifactId>logback-classic</artifactId>
    <version>1.2.3</version>
</dependency>

Então, você pode usar o código seguinte para registrar erros:

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public class ExemploLogger {
    private static final Logger logger = LoggerFactory.getLogger(ExemploLogger.class);
    
    public static void main(String[] args) {
        try {
            int resultado = 10 / 0;
        } catch (ArithmeticException e) {
            logger.error("Erro: Não é possível dividir por zero.", e);
        }
    }
}

Isso emitirá a mensagem de erro junto com um rastreamento de pilha no console ou em um arquivo, dependendo da configuração do Logback.

Usar frameworks de log como Logback fornece mais controle sobre o tratamento de erros, tornando mais fácil gerenciar aplicativos e sistemas grandes.