Exceções personalizadas

Falamos sobre como lidar com exceções quando elas são produzidas chamando métodos nas APIs Java. Java também permite criar e usar exceções personalizadas - classes de sua própria exceção, conforme a necessidade do aplicativo, que serão usadas para representar erros. Normalmente, você cria uma exceção personalizada para representar algum tipo de erro no seu aplicativo - para dar um significado novo e distinto a um ou mais problemas que podem ocorrer no seu código. Você pode fazer isso para mostrar semelhanças entre os erros existentes em vários locais do código, para diferenciar um ou mais erros de problemas semelhantes que podem ocorrer à medida que o código é executado ou para dar um significado especial a um grupo de erros em seu aplicativo.

É bastante fácil criar e usar uma exceção personalizada. Há três etapas básicas que você precisa seguir. Explicaremos isso com um exemplo de saldo da conta bancária. Aqui queremos ter a funcionalidade de depósito flexível, ou seja, quando o saldo da conta ultrapassar os 20k, um novo depósito será criado.

Defina a classe de exceção

Você geralmente representa uma exceção personalizada ao definir uma nova classe. Em muitos casos, tudo que você precisa fazer é criar uma subclasse de uma classe de exceção existente:

public class SaldoContaException extends Exception{
		private float saldoConta;
		public SaldoContaException(float f){
				super();
				this.saldoConta=f;
		}
		public SaldoContaException(Stringmsg){
		super(message);
		}
		public float getSaldoConta(){
		return saldoConta;
		}
}

No mínimo, você precisa subclassificar Throwable ou uma de suas subclasses. Freqüentemente, você também define um ou mais construtores para armazenar informações como uma mensagem de erro no objeto, conforme mostrado nas linhas 6-12. Nossa classe de exceção SaldoContaException possui dois construtores. Um com argumento String e o segundo construtor está tendo argumento float. Ao subclassificar qualquer exceção, você herda automaticamente alguns recursos padrão da classe Throwable, como:

Declare que seu método de produção de exceção lança sua exceção personalizada

Usando a palavra-chave throws, podemos declarar o método que pode estar produzindo exceções. Para usar uma exceção personalizada, você deve mostrar as classes que chamam seu código que precisam planejar para esse novo tipo de exceção. Você faz isso declarando que um ou mais dos seus métodos lança a exceção. Abaixo está o código para gerenciamento de saldo da conta. A classe GerenciaConta possui o método main () e dois métodos utilitários addAmount () e criaDepositoFixo (). Aqui assumimos o Balanço atual como Rs. 15000. Se o saldo da conta ultrapassar Rs. 20000, o valor acima de 20.000 será repassado para fazer um depósito fixo.

import java.util.Scanner;
public class GerenciaConta{
privatefloatsaldoAtual=15000f;
public static void main(String[]args){
Scanner inputDevice=new Scanner([System.in](<http://system.in/>));
System.out.print("Por favor, insira um valor acrescentado no seu saldo: ");
float novoValor=inputDevice.nextFloat();
try{
float valorTotal=new GerenciaConta().AdicionaValor(novoValor);