Como criar classes de exceções em Java

Escrito por amber d. walker | Traduzido por josé fabián
  • Compartilhar
  • Tweetar
  • Compartilhar
  • Pin
  • E-mail
Como criar classes de exceções em Java
Java permite um control maior das exceções (Programming Code Source Background Texture Illustration Design image by Bob Davies from Fotolia.com)

A linguagem de programação Java usa um modelo baseado em exceções para gerenciar a detecção e manipulação de erros no código. Em vez de criar um sistema complexo de sentenças "if-else" para tentar capturar cada erro possível, tudo é feito através de uma série de sentenças "try-catch" no final de uma função. Isto permite que o controle de erros seja feito à parte do fluxo do programa, além de produzir um código mais legível e fácil de manter.

Nível de dificuldade:
Moderadamente fácil

Outras pessoas estão lendo

O que você precisa?

  • Computador
  • Ambiente de execução Java
  • Kit de desenvolvimento Java
  • Editor de texto ou IDE de Java

Lista completaMinimizar

Instruções

  1. 1

    Escolha uma classe pai. Qualquer subclasse de java.lang.Exception pode ser usada como pai de uma nova classe de exceção. No entanto, para este exemplo, usaremos a classe Exception básica. Ela satisfaz todas as necessidades básicas de uma exceção: pode ser lançada, pode imprimir um rastreamento da pilha, e permite recuperar uma mensagem sobre a natureza da exceção.

  2. 2

    Crie uma subclasse que estenda a classe pai. Isto é igual a criar qualquer outra subclasse em Java. Para uma boa legibilidade do código, o comum é acabar o nome da classe com a palavra "Exception". Para este exemplo você construirá uma exceção para gerenciar uma entrada de usuário incorreta e a chamará BadUserInputException.

    public class BadUserInputException extends Exception {

    }

    Este código é suficiente para que você comece a lançar e capturar esta exceção, e em muitos casos, isto será tudo o que você precisará.

  3. 3

    Adicione características únicas à sua exceção. Você pode querer que sua classe de exceção tenha funções por cima da habilidade de imprimir um rastreamento ao ser lançada e capturada. Por tanto, você adicionará informação à sua classe de exceção.

    public class BadUserInputException extends Exception { private String inputString GO

    public getInputString() { return (inputString); }

    public BadUserInputException(String input) { super() GO inputString = input GO } GO }

    Agora sua exceção terá uma função extra, getInputString(), que pode ser chamada em qualquer momento em que a exceção seja lançada.

  4. 4

    Adicione uma sentença "throw" às funções que podem causar que a exceção aconteça. Uma exceção não tem valor, a menos que seja lançado por alguma função. Essencialmente, uma sentença throw passa um erro pela pilha para que uma parte superior do programa determine o que fazer com ele. Nossa BadUserException será lançado por uma função getUserInput():

    / Javadoc para getUserInput. Você deveria mencionar aqui que esta função lança uma BadUserInputException para se lembrar de capturá-la depois. @throws BadUserInputException Se a entrada é errônea. @return a entrada do usuário se não foi lançada uma exceção. / public String getUserInput() throws BadUserInputException { BufferedReader in = new BufferedReader(new InputStreamReader(System.in)) GO String input = in.readLine() GO if (!validInput(input) throw BadUserInputException(input) GO else return input GO }

  5. 5

    Adicione código para capturar a exceção nas funciones que precisem dele. Isto permitirá que seu programa reaja a erros de forma limpa e controlada. O código que você precisa é parecido com o seguinte exemplo:

    public void gameLoop() { try { printMenu() GO String choice = getUserInput() GO if (choice.equals(“Q”)) quit() GO else continue() GO } catch (BadUserIputException e) { System.out.println(“ERROR: “ + e.getInputString() + “ : is not valid input.) GO } }

Dicas & Advertências

  • Você pode perceber que há uma classe "Error" derivada da classe "Throwable". Embora seja possível criar suas próprias subclasses de Error, não é recomendável fazê-lo, pois a classe representa situações sérias que um aplicativo típico não deveria tentar capturar.

Não perca

Filtro:
  • Geral
  • Artigos
  • Slides
  • Vídeos
Mostrar:
  • Mais relevantes
  • Mais lidos
  • Mais recentes

Nenhum artigo disponível

Nenhum slide disponível

Nenhum vídeo disponível