Problema com Throws T_T

8 respostas
GabrielCardelli

Estava exercitando a mente com uns exercícios

E quand cheguei e um que era

Dada a Array

String days[] = {"Segunda", "Terça", "Quarta",
				"Quinta","Sexta", "Sabado", "Domingo"};

Mostre-a usando o laço while - for e do while.

COmecei fazendo o while:

while (days[cont] != null)
		{
			System.out.println(days[cont]);
			cont ++;
		}

Exibe direitinho mais da um erro:

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 7
	at DiasSeman.main(DiasSeman.java:10)

Dai tentei usar o Throws para lançar o erro e da erro
Olha meu codigo:

import java.lang.ArrayIndexOutOfBoundsException;

public class DiasSeman throws ArrayIndexOutOfBoundsException{

	public static void main(String[] args)
	{
		int cont = 0;
		String days[] = {"Segunda", "Terça", "Quarta",
				"Quinta","Sexta", "Sabado", "Domingo"};
	
		while (days[cont] != null)
			throw new ArrayIndexOutOfBoudsException();
		{
			System.out.println(days[cont]);
			cont ++;
		}

	}

}

Eu poderia resolver isso com o throws sem usar try catch?

ABC E OBG DESDE JÁ

8 Respostas

hugown

Não seria problema com o contador?
Ele imcrementa, mas volta a ser zero.

Posso estar enganado.

edit@

Você usa o while quando você não sabe o número de loops necessários.
Nesse caso seria adequado o for, pois o número de loops está ligado ao número do array.

GabrielCardelli

Ele dá a saída certinho:

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 7 at DiasSeman.main(DiasSeman.java:10) Segunda Terça Quarta Quinta Sexta Sabado Domingo

Só que com esse Erro!

Lavieri

o fato é…

não é possivel fazer

array[index] quando index é >= array.length… isso gera um erro, de index fora da faixa ArrayIndexOutOfBoundsException

ou seja…

String days[] = {"Segunda", "Terça", "Quarta", "Quinta","Sexta", "Sabado", "Domingo"};

System.out.println(days[7]); não imprime null, e sim gera 1 erro, pois não existe o index 7 na array, pois ela so vai de 0 a 6 nesse caso…

… resolver o problema com while seria…

while(count < days.length) { //ou seja... enquanto o contador, for menor que o numero de dias, continue...
V

Tente

while (cont < days.length)  
    
         {  
             System.out.println(days[cont]);  
             cont ++;  
         }
GabrielCardelli

AFF eu botei o throws na classe e não no metodo oO

Consegi consertar os erro mais agora n retorna nenhum resultado oO e retorna erro;

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException
	at DiasSeman.main(DiasSeman.java:13)
import java.lang.ArrayIndexOutOfBoundsException;

public class DiasSeman
{

	public static void main(String[] args) throws ArrayIndexOutOfBoundsException
	{
		int cont = 0;
		String days[] = {"Segunda", "Terça", "Quarta",
				"Quinta","Sexta", "Sabado", "Domingo"};
	
		while (days[cont] != null)
			throw new ArrayIndexOutOfBoundsException();
		{
			System.out.println(days[cont]);
			cont ++;
		}

	}

}

helpx

GabrielCardelli

Consegui valeu vdb! ta funcionando!

Mais n teria como eu

Fazer tpw dessa maneira days[cont] != null
e depois tratar o erro[url]?

V

Esta forma é incorreta pq nunca count sera null, e vc nao deve escrever um codigo ja sabendo que ele vai lançar exception.

taaqui
import java.lang.ArrayIndexOutOfBoundsException;

public class DiasSeman {

	public static void main(String[] args) throws ArrayIndexOutOfBoundsException {
		
		int cont = 0;
		String days[] = { "Segunda", "Terça", "Quarta", "Quinta", "Sexta","Sabado", "Domingo" };

		 for (String a: days){  
			 System.out.println(a);
			 cont++;
			 try{
			 if(days[cont] == null){
				 throw new ArrayIndexOutOfBoundsException(); 
			 }
			 }catch(ArrayIndexOutOfBoundsException ex){
				 System.out.println(" ========== perdeu..playboy");
			 }
		 }
	}

	}

da uma estudada ae..

Criado 7 de abril de 2009
Ultima resposta 7 de abr. de 2009
Respostas 8
Participantes 5