Resolvido: Tratando Excpetion

7 respostas
Douglas.Rossignolli

Olá Pessoal to com um pequeno problema de Exception no meu trabalho aonde eu sei que posso evita-lo apenas com um if mas não está funcionando deem uma olhada por gentileza e me digam o por que a minha condição false não está funcionando.

public void colocandoRoupasNaMinhaSacola(String nomeDaPeça, double preçoDaPeça){
		Produto peçaDeRoupa = new Produto(nomeDaPeça, preçoDaPeça);
		sacolaDeCompras[this.elementoDaSacola] = peçaDeRoupa;
		if(this.elementoDaSacola < sacolaDeCompras.length){
			elementoDaSacola = elementoDaSacola + 1;
			System.out.println("Item Colocado com sucesso na sua Sacola");
		}
		else { System.out.println("Sacola ja está cheia");
	}
		
}

ali no meu if quando ele da true ele faz a mensagem, mas no false, ele não trata e da uma Excetion.

7 Respostas

S
Douglas.Rossignolli:
Olá Pessoal to com um pequeno problema de Exception no meu trabalho aonde eu sei que posso evita-lo apenas com um if mas não está funcionando deem uma olhada por gentileza e me digam o por que a minha condição false não está funcionando.
public void colocandoRoupasNaMinhaSacola(String nomeDaPeça, double preçoDaPeça){
		Produto peçaDeRoupa = new Produto(nomeDaPeça, preçoDaPeça);
		sacolaDeCompras[this.elementoDaSacola] = peçaDeRoupa;
		if(this.elementoDaSacola < sacolaDeCompras.length){
			elementoDaSacola = elementoDaSacola + 1;
			System.out.println("Item Colocado com sucesso na sua Sacola");
		}
		else { System.out.println("Sacola ja está cheia");
	}
		
}

ali no meu if quando ele da true ele faz a mensagem, mas no false, ele não trata e da uma Excetion.


Faltou um "}" no teu else, ou retirar o "{".

Allan_Barcelos
else{
throw new BagException(); // sua exception
}

public class BagException extends Exception{
public String toString(){
return "A sacola esta cheia!";
}

Você pode ainda usar a OverflowException, :wink:

Allan_Barcelos

Primeiro verifique se a sacola ja esta cheia, que evita o erro, e use o ,throws sua exception, na assinatura do método.

santos.fernando acho que não falta }

Douglas.Rossignolli

No meu programa ta certo ali, eu só esqueci de colar lá, to usando o eclipse ele é chato pra essas coisas, mas a exception que ele manda é:

java.lang.ArrayIndexOutOfBoundsException: 5
at SacolaDeCompras.colocandoRoupasNaMinhaSacola(SacolaDeCompras.java:16)

5 por que o meu array em tempo de execução é de 5 espaços, mas assim eu tratei no if para não passar …
acho que o meu tratamento tem que vir antes … não depois…

S

Allan Barcelos:
Primeiro verifique se a sacola ja esta cheia, que evita o erro, e use o ,throws sua exception, na assinatura do método.

santos.fernando acho que não falta }


1º “{” do lado da assinatura do método
2º “{” do lado do if
3º “{” do lado else

1º “}” em cima do else
2º “}” em baixo do else

Ou será que eu não consegui visualizar outro ?

Douglas.Rossignolli

Problema resolvido:

public void colocandoRoupasNaMinhaSacola(String nomeDaPeça, double preçoDaPeça){
		if(this.elementoDaSacola < sacolaDeCompras.length){
			Produto peçaDeRoupa = new Produto(nomeDaPeça, preçoDaPeça);
			sacolaDeCompras[this.elementoDaSacola] = peçaDeRoupa;
			elementoDaSacola = elementoDaSacola + 1;
			System.out.println("Item Colocado com sucesso na sua Sacola");
		}
		else { System.out.println("Sacola ja está cheia");
	}
   }

troquei o if pra verificar antes da ação.

Allan_Barcelos

Tinha razão, não tinha visto ao lado do else, foi malz :oops:

Criado 2 de junho de 2010
Ultima resposta 3 de jun. de 2010
Respostas 7
Participantes 3