Estou passando por um programa de soquete. Nele, printStackTrace
é chamado no IOException
objeto no bloco catch.
O que printStackTrace()
realmente faz?
catch(IOException ioe)
{
ioe.printStackTrace();
}
Não estou ciente de seu propósito. Para que isso é usado?
e.printStackTrace(); System.exit(1);
Aqui, eu quero fazer a mesma pergunta que o OP, mas em uma linha diferente: Qual é exatamente o propósito disso? O JRE não imprimirá automaticamente o rastreamento de pilha e sairá, quando a exceção for lançada? Ou seja, não há muito "Tratamento de exceções" acontecendo aqui, certo ??Respostas:
É um método em
Exception
instâncias que imprime o rastreamento de pilha da instância emSystem.err
.É uma ferramenta muito simples, mas muito útil para diagnosticar exceções. Ele informa o que aconteceu e onde isso aconteceu no código.
Aqui está um exemplo de como ele pode ser usado na prática:
fonte
catch
blocos :-)throw new RuntimeException(e)
Eu também estava curioso sobre isso, então juntei um pequeno código de amostra onde você pode ver o que ele está fazendo:
Ligando
println(e)
:Ligando
e.printStackTrace()
:fonte
System.err.println(e);
será mais apropriado.Isso ajuda a rastrear a exceção. Por exemplo, você está escrevendo alguns métodos em seu programa e um dos seus métodos causa um bug. Então, o printstack o ajudará a identificar qual método causa o bug. Stack ajudará assim:
Primeiro seu método principal será chamado e inserido na pilha, então o segundo método será chamado e inserido na pilha na ordem LIFO e se ocorrer algum erro em algum lugar dentro de qualquer método, esta pilha ajudará a identificar esse método.
fonte
printStackTrace()
ajuda o programador a entender onde o problema real ocorreu.printStacktrace()
é um método da classeThrowable
dejava.lang
pacote. Ele imprime várias linhas no console de saída. A primeira linha consiste em várias strings. Ele contém o nome da subclasse Throwable e as informações do pacote. Da segunda linha em diante, descreve a posição do erro / número da linha começando comat
.A última linha sempre descreve o destino afetado pelo erro / exceção. A penúltima linha nos informa sobre a próxima linha na pilha para onde o controle vai após obter a transferência do número de linha descrito na última linha. Os erros / exceções representam a saída na forma de uma pilha, que foram alimentados na pilha por
fillInStackTrace()
método daThrowable
classe, que por sua vez preenche os detalhes de transferência do controle do programa na pilha de execução. As linhas que começam comat
, nada mais são do que os valores da pilha de execução. Desta forma, o programador pode entender onde está o problema real no código.Junto com o
printStackTrace()
método, é uma boa ideia usare.getmessage()
.fonte
printStackTrace()
imprime os locais onde a exceção ocorreu no código-fonte, permitindo assim ao autor que escreveu o programa ver o que deu errado. Mas, como mostra problemas no código-fonte, o (s) usuário (s) que pode (m) ou não ter experiência em codificação podem não ser capazes de entender o que deu errado, portanto, se o programa permitir que o usuário envie mensagens de erro aos autores, o os usuários podem não ser capazes de fornecer dados confiáveis sobre o que deu errado.Você deve considerar o
Logger.getLogger()
método, ele oferece uma facilidade de tratamento de exceções (registro) melhor e, além disso,printStackTrace()
sem argumentos é considerado obsoleto e deve ser usado SOMENTE para fins de depuração, não para exibição do usuário.fonte
Isso
printStackTrace()
ajuda o programador a entender onde o problema real ocorreu. OprintStackTrace()
método é membro da classeThrowable
dojava.lang
pacote.fonte
printStackTrace
é um método daThrowable
classe. Este método exibe mensagem de erro no console; onde estamos obtendo a exceção no código-fonte. Esses métodos podem ser usados com catch block e descrevem:Os três métodos que descrevem a exceção no console (em que printStackTrace é um deles) são:
printStackTrace()
toString()
getMessage()
Exemplo:
fonte
printStackTrace () ajuda o programador a entender onde o problema real ocorreu. Isso ajuda a rastrear a exceção. é o método printStackTrace () da classe Throwable herdado por cada classe de exceção. Este método imprime a mesma mensagem do objeto e também o número da linha onde ocorreu a exceção.
A seguir está um outro exemplo de pilha de impressão da Exceção em Java.
java.lang.Throwable: esta é uma nova exceção em Java ... em ClassName.methodName (fileName: 5)
fonte
Qual é a utilidade do método e.printStackTrace () em Java?
Bem, o objetivo de usar esse método
e.printStackTrace();
é ver o que exatamente está errado.Por exemplo, queremos tratar uma exceção. Vamos dar uma olhada no seguinte exemplo.
Usei o método
e.printStackTrace();
para mostrar exatamente o que está errado.Na saída, podemos ver o seguinte resultado.
fonte
printStackTrace()
informa em qual linha você está obtendo erro, por que motivo está obtendo erro.Exemplo:
fonte