Excessoes

Opa galera novamente eu alguem sabe pq isto esta errado??
void x2() throws EOFException {
try{
throw new EOFException();
}catch(FileNotFoundException e){

 }catch(Exception e)

}
}
1)pq tive obrigatoriamente que declarar como interface publica throws EOFException?pois li que quando vc lanca uma excessao ou vc usa um try ou declara como interface publica mas aqui nao certo,só daria se usasse Exception
2)pq nao aceita FileNotFoundException?afinal nao é uma classe mais especifica?? Exception nao é a mais generica??
antes de tudo agradeco todo mundo pela paciencia e pela atencao

Compare as exceptions

java.lang.Object
java.lang.Throwable
java.lang.Exception
java.io.IOException
java.io.EOFException

java.lang.Object
java.lang.Throwable
java.lang.Exception
java.io.IOException
java.io.FileNotFoundException

Ambas as exceptions são subclasses da IOException :wink:

[quote=fabioEM]Opa galera novamente eu alguem sabe pq isto esta errado??
void x2() throws EOFException {
try{
throw new EOFException();
}catch(FileNotFoundException e){

 }catch(Exception e)

}
}
1)pq tive obrigatoriamente que declarar como interface publica throws EOFException?pois li que quando vc lanca uma excessao ou vc usa um try ou declara como interface publica mas aqui nao certo,só daria se usasse Exception
2)pq nao aceita FileNotFoundException?afinal nao é uma classe mais especifica?? Exception nao é a mais generica??
antes de tudo agradeco todo mundo pela paciencia e pela atencao[/quote]

olá … do geito que o código está a declaração “throws EOFException” está redundante (desconsiderando a falta das chaves), exceções só são capturadas se forem instâncias da classe ou das heranças da Exceção que você declarou no “catch”, e a exceção EOFException não é herança de FileNotFoundException:

public class java.io.EOFException extends java.io.IOException {

public class java.io.IOException extends java.lang.Exception

espero ter ajudado!

[quote=smkk][quote=fabioEM]Opa galera novamente eu alguem sabe pq isto esta errado??
void x2() throws EOFException {
try{
throw new EOFException();
}catch(FileNotFoundException e){

 }catch(Exception e)

}
}
1)pq tive obrigatoriamente que declarar como interface publica throws EOFException?pois li que quando vc lanca uma excessao ou vc usa um try ou declara como interface publica mas aqui nao certo,só daria se usasse Exception
2)pq nao aceita FileNotFoundException?afinal nao é uma classe mais especifica?? Exception nao é a mais generica??
antes de tudo agradeco todo mundo pela paciencia e pela atencao[/quote]

olá … do geito que o código está a declaração “throws EOFException” está redundante (desconsiderando a falta das chaves), exceções só são capturadas se forem instâncias da classe ou das heranças da Exceção que você declarou no “catch”, e a exceção EOFException não é herança de FileNotFoundException:

public class java.io.EOFException extends java.io.IOException {

public class java.io.IOException extends java.lang.Exception

espero ter ajudado!
[/quote]

Opa cara valeu!! tenho que decorar essas arvores de heranca mesmo pelo menos ate ate a 7 geracao diacho!!!

[quote=peczenyj]Compare as exceptions

java.lang.Object
java.lang.Throwable
java.lang.Exception
java.io.IOException
java.io.EOFException

java.lang.Object
java.lang.Throwable
java.lang.Exception
java.io.IOException
java.io.FileNotFoundException

Ambas as exceptions são subclasses da IOException ;-)[/quote]

valeu cara!!e muito obrigado !!""

huaEHuheAHEae tudo ok !!!

mais pense positivo!!!

da classe Object naum passa!! hUEHUAeAUEAHUEHUAHEU

[quote=fabioEM][quote=smkk][quote=fabioEM]Opa galera novamente eu alguem sabe pq isto esta errado??
void x2() throws EOFException {
try{
throw new EOFException();
}catch(FileNotFoundException e){

 }catch(Exception e)

}
}
1)pq tive obrigatoriamente que declarar como interface publica throws EOFException?pois li que quando vc lanca uma excessao ou vc usa um try ou declara como interface publica mas aqui nao certo,só daria se usasse Exception
2)pq nao aceita FileNotFoundException?afinal nao é uma classe mais especifica?? Exception nao é a mais generica??
antes de tudo agradeco todo mundo pela paciencia e pela atencao[/quote]

olá … do geito que o código está a declaração “throws EOFException” está redundante (desconsiderando a falta das chaves), exceções só são capturadas se forem instâncias da classe ou das heranças da Exceção que você declarou no “catch”, e a exceção EOFException não é herança de FileNotFoundException:

public class java.io.EOFException extends java.io.IOException {

public class java.io.IOException extends java.lang.Exception

espero ter ajudado!
[/quote]

Opa cara valeu!! tenho que decorar essas arvores de heranca mesmo pelo menos ate ate a 7 geracao diacho!!![/quote]

[quote=fabioEM][quote=smkk][quote=fabioEM]Opa galera novamente eu alguem sabe pq isto esta errado??
void x2() throws EOFException {
try{
throw new EOFException();
}catch(FileNotFoundException e){

 }catch(Exception e)

}
}
1)pq tive obrigatoriamente que declarar como interface publica throws EOFException?pois li que quando vc lanca uma excessao ou vc usa um try ou declara como interface publica mas aqui nao certo,só daria se usasse Exception
2)pq nao aceita FileNotFoundException?afinal nao é uma classe mais especifica?? Exception nao é a mais generica??
antes de tudo agradeco todo mundo pela paciencia e pela atencao[/quote]

olá … do geito que o código está a declaração “throws EOFException” está redundante (desconsiderando a falta das chaves), exceções só são capturadas se forem instâncias da classe ou das heranças da Exceção que você declarou no “catch”, e a exceção EOFException não é herança de FileNotFoundException:

public class java.io.EOFException extends java.io.IOException {

public class java.io.IOException extends java.lang.Exception

espero ter ajudado!
[/quote]

Opa cara valeu!! tenho que decorar essas arvores de heranca mesmo pelo menos ate ate a 7 geracao diacho!!![/quote]

So mais uma duvida,corregi o problema fazendo como vc disse a excessao lancada agora faz parte da relacao de heranca mas pq o compilador me obrigaga acrescentar IOException na interface publica?
public class File2 {

void x2()throws IOException{
try{
throw new IOException();
}catch(FileNotFoundException r){

  }

}
}

obrigado novamente!!

te obriga porque FileNotFoundException nunca conseguiria capturar IOException… no exemplo anterior, Exception tem condições de capturar EOFException, por isso que não te obrigava o “throws EOFException”… agora como neste caso FileNotFoundException nunca teria condições de capturar uma IOException, já que IOException é superclasse de FileNotFoundException, o throws torna-se obrigatório para poder jogar a exceção para o método anterior da pilha.

cara … para ficar mais facil… pense nas excecoes como Animais(exemplo bem idiota eu sei)

[code]public class Principal {

public static void main(String[] args) {
	
	// FUNCIONA
	try {
		throw new Animal();
	} catch (Animal ex) {
	}
	
	// FUNCIONA
	try {
		throw new Cachorro();
	} catch (Mamifero ex) {
	}
	
	// NÂO FUNCIONA >> sapos não mamam!!!
	try {
		throw new Anfibio();
	} catch (Mamifero ex) {
	}
	
	// NÃO FUNCIONA >>> você não pode mandar um Animal mamar,
	// pois você não tem certeza se ele pode... pode ser um sapo!!
	try {
		throw new Animal();
	} catch (Mamifero ex) {
	}
}

}

class Animal extends Exception {

void come() {}

}

class Mamifero extends Animal {

void mama() {}

}

class Anfibio extends Animal {

void comportamentoEstranho() {} // hehe

}

class Cachorro extends Mamifero {

void late() {}

}

class Gato extends Mamifero {

void mia() {}

}[/code]

espero que agora tenha ficado mais claro.

? Faça um método que some os 10 primeiros
elementos de um array de inteiros.
? Caso o array tenha menos de 10 elementos
lance uma exceção
ArrayIndexOutOfBoundsException.
? Teste o método com vários arrays.

Alguem poderia me ajudar… a responder este exercicio…por favor?