Dúvida PrintWriter

10 respostas
Java_Player

Estava vendo o código da classe java.io.PrintWriter e achei um negócio estranho… Para que serve aquele try/catch ???

/** Indicate that an error has occurred. */
protected void setError() {
    trouble = true;
    try {
        throw new IOException();
    } catch (IOException x) {
    }
}

10 Respostas

Paulo_Faulstich

Dae rapa tem um link bem explicativo. Creio que vai te ajudar.

http://www.arquivodecodigos.net/arquivo/visualizar_dica.php?qual_dica=2133

Abraço.

LPJava

para indicar que há algo de perigoso e tratar a exceção.

Caso uma exceção do tipo IOException venha acontecer o catch trata ela… imagine isso como um local cheios de mina e com uma placa: “há minas cuidado” vc vai andando se pisar em uma o acontece? hehe

Faça uma pesquisa no [google]http://www.google.com[/google] sobre Exceções java para que vc possa entender melhor o pq do try{} e catch{]

Java_Player

LPJava:
para indicar que há algo de perigoso e tratar a exceção.

Caso uma exceção do tipo IOException venha acontecer o catch trata ela… imagine isso como um local cheios de mina e com uma placa: “há minas cuidado” vc vai andando se pisar em uma o acontece? hehe

Faça uma pesquisa no [google]http://www.google.com[/google] sobre Exceções java para que vc possa entender melhor o pq do try{} e catch{]

Indicar para quem, se a assinatura do método não tem “throws IOException” ?

Ele mesmo está lançando e capturando a exceção sem fazer nada com ela.

As linhas 4 a 7 podem ser removidas que daria no mesmo, não?

T

Que interessante - acho que é alguma coisa para forçar o JIT (Just-In-Time Compiler) a fazer alguma coisa (o código do JDK tem várias mágicas esquisitas, não seria essa mais uma delas?).
O intuito realmente é esquisito, já que em tese seria necessário usar apenas “trouble = true”, mais nada.

wmitsuda

Deve ser algum POG que alguém esqueceu (que coisa feia Sun…) e tirou depois.

Eu consigo ver ele aqui no jdk 1.5.0_12, mas no 1.6.0_04 já não está mais lá.

LPJava

Java Player:
LPJava:
para indicar que há algo de perigoso e tratar a exceção.

Caso uma exceção do tipo IOException venha acontecer o catch trata ela… imagine isso como um local cheios de mina e com uma placa: “há minas cuidado” vc vai andando se pisar em uma o acontece? hehe

Faça uma pesquisa no [google]http://www.google.com[/google] sobre Exceções java para que vc possa entender melhor o pq do try{} e catch{]

Indicar para quem, se a assinatura do método não tem “throws IOException” ?

Ele mesmo está lançando e capturando a exceção sem fazer nada com ela.

As linhas 4 a 7 podem ser removidas que daria no mesmo, não?

se vc está lançando uma exceção checada vc tem tratar ou passar a bola para alguem!! é obrigado com excecoes checadas!! IOException faz parte da hierarquia das checadas!!

Vc poderia fazer o q citou se fosse nao-checadas…

renatocustodio

LPJava, o caso é que ele tem o catch não lá, mas não faz nada com ele. Não retorna mensagem de erro, não lança outra exceção, e não dá nem mesmo um System.out.pritln na mensagem. Ou seja, se der algum problema naquela linha, vai ficar por isso mesmo…

renatocustodio
LPJava

assim! ai é outro caso …ele nao trata a exceção! mais a duvida inicial dele foi pq usar try{} e catch{}…

renatocustodio

Me pareceu desde o ínicio que a dúvida dele era isso que falei. Acho que pelas respostas que as outras pessoas deram(a maioria) tbm pensaram isso…

De qualquer forma, alguém que não sabe usar try catch provavelmente não estaria estudando os fontes das classes nativas do java =D

Criado 27 de maio de 2008
Ultima resposta 27 de mai. de 2008
Respostas 10
Participantes 6