Erro em executar metodo

pessoal, olha eu aqui dinovo seguinte:

tenho um metodo que me diz quando eu seleciono uma posição inválida no vetor ele deveria me retorna uma mensagem de ero mas, não esa funcionado.
Quando eu coloco uma posição invalida a saida do metodo é o valor (numero) que dei como posição.

esta e a classe que seleciona aposição

public class TestePegaPosicao {

	
	public static void main(String[] args) {
		Vetor lista = new Vetor();
		Aluno a1 = new Aluno();
		Aluno a2 = new Aluno();
		int posicao = 11111113;// esta posição não existe.
		
		a1.setNome("Rafael");
		a2.setNome("Paulo");
		
		lista.adicionaFim(a1);
		lista.adicionaFim(a2);
		lista.pega(posicao);
		
		System.out.println(lista.pega(posicao));
	}

}

classe com o "teste" e o retorno


public class Vetor {
	private Aluno[] alunos = new Aluno[100];
	private int totalDeAlunos = 0;
	
	// Adiciona no fim do vetor
	public void adicionaFim (Aluno aluno){
		this.garantaEspaco();
		this.alunos[this.totalDeAlunos]=aluno;
		this.totalDeAlunos++;
	}
	// entrega total de nomes
	public int getTotalDeAlunos() {
		return totalDeAlunos;
	}
	// atribui total de alunos
	public void setTotalDeAlunos(int totalDeAlunos) {
		this.totalDeAlunos = totalDeAlunos;
	}
	//entrega nomes
	public Aluno[] getAlunos() {
		return alunos;
	}
	//atribiu nomes
	public void setAlunos(Aluno[] alunos) {
		this.alunos = alunos;
	}
	//adiciona nome por possição
	public void adicioNaPosicao(int posicao, Aluno aluno){	
		this.garantaEspaco();
		if(!this.posicaoValida(posicao)){
			System.out.println(posicao);
			throw new IllegalArgumentException("Posição Inválida");
		}
		if(!this.posicaoOcupada(posicao)){
			System.out.println(posicao);
			throw new IllegalArgumentException("Posição Inválida");
		}
		for(int i = this.totalDeAlunos-1;i>=posicao;i--){
			this.alunos[i+1]=this.alunos[i];
		}
		this.alunos[posicao]=aluno;
		this.totalDeAlunos++;
	}
	//entrega nome por posicao
	public Aluno pega(int posicao){
		if(!this.posicaoOcupada(posicao)){
			System.out.println(posicao);
			throw new IllegalArgumentException("Posição Inválida");
		}
		return this.alunos[posicao];
	}
	//remove por posição
	public void remove(int posicao){
		if(!this.posicaoOcupada(posicao)){
			System.out.println(posicao);
			throw new IllegalArgumentException("Posição Inválida");
		}
		for(int i = posicao;i<this.totalDeAlunos;i++){
			this.alunos[i]=this.alunos[i+1];
		}
		this.totalDeAlunos--;
	}
	//verifica se nome ja esta cadastrado
	public boolean contem(Aluno aluno){
		for(int i=0;i >< this.getTotalDeAlunos();i++){
			if(aluno.equals(this.alunos[i])){
				return true;
			}
		}
		return false;
	}
	//Verifica se a posição esta ocupada
	public boolean posicaoOcupada (int posicao){
		return posicao >= 0 && posicao < this.tamanho();
	}
	//verifica se a posicao solicitada e valida
	private boolean posicaoValida(int posicao){
		return posicao >= 0 && posicao <= this.totalDeAlunos;
	}
	
	//tamanho do vetor
	public int tamanho(){
		return this.getTotalDeAlunos();
	}
	//dobra o tamanho do vetor, sempre que este estiver cheio
	private void garantaEspaco(){
		if(this.totalDeAlunos == this.alunos.length){
			Aluno[] novoArray = new Aluno[this.alunos.length*2];
			for(int i=0;i<this.alunos.length;i++){
				novoArray[i]=this.alunos[i];
			}
			this.alunos=novoArray;
		}
	}
}

poderiam me dizer pq não esta sendo impressa a mensagem “posição inválida”?>

Se entendi bem, a posição (System.out.println(posicao)) está sendo mostrada no console e a mensagem “Posição Inválida” não! É isto ?!?!?!?

Se for, acredito que é porque você não está tratando esta mensagem. Se você notar, você apenas está levantando a exceção, porém não há um catch(IllegalArgumentException e) onde você mostra a mensagem.

Sugiro que você tente fazer desta forma:

public Aluno pega(int posicao) throws IllegalArgumentException{   
        if(!this.posicaoOcupada(posicao)){   
            System.out.println(posicao);   
            throw new IllegalArgumentException("Posição Inválida");   
        }   
        return this.alunos[posicao];   
    }

Assim, quando você invocar este método (pega(int posicao)), o compilar obrigará você tratar este método, pois agora, éstá sendo informado, que pode ocorrer uma exceção do tipo IllegalArgumentException.

Quando for chamar este método, faça o seguinte:

try {
    lista.pega(posicao);
} catch (IllegalArgumentException e) {
    System.out.println(e.getMessage());
}

Acredito que desta forma, a sua mensagem será mostrada.

Espero ter entendi realmente o que você quer. Porque senão, falei bastante coisa que não lhe interessa! auuahuahuahhaah

Abraço!

Exatamente o contrário, não esta sendo exibida a mensagem de “Posição Inválida”, ele exibe normalmente no exemplo ele usa duas posições. qquando eu chamo eu digo

int posicao = 0; // ou = 1

funciona
mas quando eu digo

int posicao = 100000000; // não é o caso de ser grande demais pra um inteiro so coloquei este numero com exemplo...

deveria retornar

posição inválida e não esta fazendo isso…

um abraço