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.
publicvoidcolocandoRoupasNaMinhaSacola(StringnomeDaPeça,doublepreçoDaPeça){ProdutopeçaDeRoupa=newProduto(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.
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.
publicvoidcolocandoRoupasNaMinhaSacola(StringnomeDaPeça,doublepreçoDaPeça){ProdutopeçaDeRoupa=newProduto(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{thrownewBagException();// sua exception}publicclassBagExceptionextendsException{publicStringtoString(){return"A sacola esta cheia!";}
Você pode ainda usar a OverflowException,
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
santos.fernando
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:
publicvoidcolocandoRoupasNaMinhaSacola(StringnomeDaPeça,doublepreçoDaPeça){if(this.elementoDaSacola<sacolaDeCompras.length){ProdutopeçaDeRoupa=newProduto(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: