Bom dia galera, estou tentando lançar um erro caso o usuário cadastre mais usuários no array do que o limite, mas ele está cadastrando infinitamente sem acusar nenhum erro, poderiam me ajudar?
public class Sistema {
Usuario usuarios [] = new Usuario[2];
public void adicionarUsuario(Usuario usuario) throws Exception{
boolean cheio = false;
if(cheio==true) {
Exception erro = new Exception("Erro! Vetor está totalmente preenchido!");
throw erro;
}
for (int j = 0; j < usuarios.length; j++) {
if(usuarios[j]==null) {
usuarios[j] = usuario;
}else if (usuarios[j]!=null) {
cheio = true;
}
}
}
}
public class Q2 {
public static void main(String[] args) {
Scanner ler = new Scanner(System.in);
Sistema sistema = new Sistema();
Usuario usuario = new Usuario();
int opc = 0;
while(opc!=2) {
System.out.println("1-Cadastrar novo usuário"+"\n2-Sair");
opc = ler.nextInt();
if(opc==1) {
try {
sistema.adicionarUsuario(usuario);
System.out.println("Novo usuário cadastrado!");
} catch (Exception e) {
System.out.println(e.getMessage());
}
}
}
}
}