Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

vasco16

Como usar o try catch

Mensagens Recomendadas

vasco16

Boas pessoal,

Estou com um problema que é o seguinte: tenho 2 classes uma cliente e outra servidor, ao usar a cliente (a que tem o main) vou ter de ler um ficheiro, ficheiro esse que tem uma matriz, matriz essa que tenho de passar para uma variável do tipo inteira matriz.

Até aqui tudo bem, mas depois de ter essa variável tenho de interromper ou não se a matriz na condição da matriz ser quadrada, para isso uso a classe servidor que tem um método para essa verificação.

Como posso fazer para interromper o programa caso não seja uma matriz quadrada?

Obrigado.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
jarsantos

precisas mesmo de fazer isso com try catch?

pode ser tipo:

cliente:

int num_linhas;

int num_colunas;

if(!servidor.verificarTipoMatriz(num_linhas, num_colunas))

{

return;

}

else

{

//continua o programa

}

server

public boolean verificarTipoMatriz(int num_linhas, int num_colunas)

{

if(num_linhas != num_colunas)

{

return false;

}

return true;

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
softklin

Se tiveres mesmo de usar excepções, necessitas de atirar (throw) uma excepção. Podes fazê-lo do seguinte modo:

public static void main(String args[]) {
  try {
    if (!matriz.ehQuadrada()) {
      // atirar uma excepçõa que irá ser apanhada no bloco do catch
      throw new Exception("A matriz não é quadrada!");
    }

  } catch (Exception e) {
    // imprimir o erro definido na excepção
    System.out.println(e.getMessage());
  }

}

Deixo-te umas referências:

http://java.sun.com/docs/books/tutorial/essential/exceptions/throwing.html

http://java.sun.com/docs/books/tutorial/essential/exceptions/catch.html


Nick antigo: softclean | Tens um projeto? | Wiki P@P

Ajuda a comunidade! Se encontrares algo de errado, usa a opção "Denunciar" por baixo de cada post.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
vasco16

precisas mesmo de fazer isso com try catch?

pode ser tipo:

cliente:

int num_linhas;

int num_colunas;

if(!servidor.verificarTipoMatriz(num_linhas, num_colunas))

{

return;

}

else

{

//continua o programa

}

server

public boolean verificarTipoMatriz(int num_linhas, int num_colunas)

{

if(num_linhas != num_colunas)

{

return false;

}

return true;

Sim isso eu tambem sabia fazer, usar excepções é que não..

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
jarsantos

Nesse caso, o que queres deve ser algo deste tipo:

cliente:


int num_linhas, num_colunas;

try
{
    server.verificarTipoMatriz(num_linhas, num_colunas);
} catch (MatrizInvalidaException e)
{
    System.out.println("Matriz é inválida);
}

Server:

public void verificarTipoMatriz(int linhas, int colunas)
{
    if(linhas!=colunas)
        throw new MatrixInvalidaException();
}

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
vasco16

Nesse caso, o que queres deve ser algo deste tipo:

cliente:


int num_linhas, num_colunas;

try
{
    server.verificarTipoMatriz(num_linhas, num_colunas);
} catch (MatrizInvalidaException e)
{
    System.out.println("Matriz é inválida);
}

Server:

public void verificarTipoMatriz(int linhas, int colunas)
{
    if(linhas!=colunas)
        throw new MatrixInvalidaException();
}

Este excepção: MatrixInvalidaException,  nao tem de ser feita na mesma classe? Neste caso servidor?

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
jarsantos

Este excepção: MatrixInvalidaException,  nao tem de ser feita na mesma classe? Neste caso servidor?

Não, só tem que herdar a Classe Exception e depois tens que importar essa classe para o ficheiro do server.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.