Objetivos do Tópico

  • Uso de printStackTrace e getMessage
  • Conteúdo

    Exceções derivam da classe Throwable. A classe Throwable oferece o método printStackTrace que imprime o método call stack. Para enviar este método para um objeto Exception que foi pego, o programa pode imprimir o método call stack.

    Isto é de muita ajuda em teste e debbuging.

    Neste exemplo usaremos os métodos printStackTrace e getMessage.

    Há dois construtores para a classe Exception. O primeiro construtor

    public Exception ()
    não leva argumentos. O segundo construtor

    public Exception ( String   informationString )
    leva um argumento informationString que descreve a informação sobre qual tipo de Exception que será carregada por todos os objetos desta classe. A informationString armazenada em Exception pode ser obtida através do método getMessage .

    Neste exemplo o método getMessage retorna a String armazenada na exceção. O método printStackTrace dá como saída standard error stream uma mensagem de erro com o nome da classe da exceção.


    public class UsingExceptions {
    pulic static void main (String args [ ]);

    try { method1 ( ) ; }
    catch ( UserException e )
    { System.err.println( e.getMessage ( ) + "/n The stack trace is : ") ;
    e.printStackTrace ( );
    }

    pulic static void method1 ( ) throws UserException {
    method2 ( )
    }

    pulic static void method2 ( ) throws UserException {
    method3 ( )
    }

    pulic static void method3 ( ) throws UserException {
    throw new UserException ( ) ;
    }
    }

    class UserException extends Exception {
    public UserException ( )
    {
    super( "This is a user defined exception. ");
    }
    }



    No programa, main invoca method1 , method1 invoca method2 e method2 invoca method3. Até este ponto o método de chamada da pilha é

    method3
    method2
    method1
    main


    Quando o method3 lança a UserException o ponteiro não vai para o primeiro método no qual a exceção pode ser pega (isto é , main porque contém o tratamento catch para UserException ) .O o tratamento catch então usa printStackTrace e getMessage no objeto e da UserException para produzir a saída.




  • Para saber mais consulte Bibliografia e Referências