Eu tenho o seguinte:
public class doCheck(){
public void performCheck(){
try {
perform all checks......
}
catch(Exception e){
logger.error("Exception occured in class doCheck in method performCheck");
thrown new MyNewException(e.getMessage());
}
}
}
É seguro registrar o nome da classe e do método?
fonte
A @Konrad respondeu à pergunta direta, no entanto, o tratamento de exceções tem um problema menor e dois graves. Desde que você postou originalmente no codereview.SE, aqui estão eles:
OK, vou adicionar uma quarta questão: você registra onde a exceção aconteceu, mas não diz o que estava fazendo quando ocorreu, nem fornece informações contextuais. Se você registrar a exceção real (ponto 1), saberá onde aconteceu. Mais importante é dizer algo como "não é possível abrir o arquivo foo.txt".
fonte
Não é particularmente inseguro; portanto, a menos que haja algo crítico que você queira ocultar nesta classe ou se a classe fizer parte de um caminho crítico (como um aperto de mão seguro ou um recurso "oculto"), eu não consideraria isso um problema em absoluto.
Além disso, estamos falando sobre Java aqui. Portanto, se estamos falando de um aplicativo do lado do cliente executando Java no cliente, eles sempre podem modificar o JRE para adicionar suas próprias rotinas de depuração e / ou usar um carregador de classes personalizado e acessar suas classes da maneira que desejar. Tornar isso mais difícil para eles (por meio da ocultação de coisas mais profundas, ou mesmo do código ofuscante) é sempre uma possibilidade, mas geralmente não é rentável quando você considera o tempo e o esforço necessários para conseguir isso contra as perdas causadas por fatores estatisticamente improváveis. usuários mal-intencionados.
Se estivermos falando de um software do servidor que pode gerar logs para os clientes (por exemplo, no navegador do usuário), provavelmente não é muito importante, mas já é mais simples de corrigir: configure seu contêiner portanto, e use uma estrutura de log ou multiplexador para gerar os arquivos apropriados no servidor para fins de depuração. Dessa forma, você mantém registros úteis para depuração, mas não compromete informações potencialmente úteis.
Mas, em geral, isso provavelmente não seria um problema. é mais o que você coloca na mensagem de depuração que pode ser um problema, pois geralmente desenvolvemos como desenvolvedores a saída das coisas em que trabalhamos (você não deseja deixar essas saídas de depuração para nomes de usuário, senhas, sais e tokens de segurança à vista) )
fonte