Jump to content
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

Sign in to follow this  
vasco16

Como usar o try catch

Recommended Posts

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.

Share this post


Link to post
Share on other 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;

Share this post


Link to post
Share on other 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.

Share this post


Link to post
Share on other 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..

Share this post


Link to post
Share on other 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();
}

Share this post


Link to post
Share on other 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?

Share this post


Link to post
Share on other 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.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.