Olá, eu criei um Sistema Bancario simples, e estou com dificuldades de usar o Try e Catch para o programa não abortar no meio, como e aonde eu adiciono eles, nesse sistema. para aplicarmos o conceito de Exceptions.
Método sacar pode gerar uma SaldoInsuficienteException
public class ContaCorrente {
protected int agencia;
protected int conta;
protected String nome;
protected double saldo;
public ContaCorrente() {
}
public ContaCorrente(int pAgencia, int pConta, String pNome, double pSaldo) {
agencia = pAgencia;
conta = pConta;
nome = pNome;
saldo = pSaldo;
}
public void depositar(double pValor){
saldo +=pValor;
}
public void imprimirConta(){
System.out.println("---------------------------");
System.out.println("Agencia :: "+agencia);
System.out.println("Conta :: "+conta);
System.out.println("Cliente :: "+nome);
System.out.println("Saldo :: "+saldo);
}
public boolean sacar(double pValor){
if(pValor > saldo){
return false;
}
saldo -= pValor;
return true;
}
}
public class ContaCorrenteEspecial extends ContaCorrente{
private double limite;
public ContaCorrenteEspecial(int pAgencia, int pConta, String pNome,
double pSaldo, double pLimite) {
super(pAgencia,pConta,pNome,pSaldo);
limite = pLimite;
}
public void imprimirConta() {
super.imprimirConta();
System.out.println("Limite :: " + limite);
}
public boolean sacar(double pValor) {
if (pValor > (saldo + limite)) {
return false;
}
saldo -= pValor;
if (saldo < 0)
limite += saldo;
return true;
}
}
import java.util.Scanner;
class TelaConsole {
Scanner teclado = new Scanner(System.in);
ContaCorrente cc = new ContaCorrente(1996, 1454 - 1, "Fulano de Tal",
500.00);
ContaCorrenteEspecial cce = new ContaCorrenteEspecial(1996, 54687 - 8,
"Beltrano", 500.00, 300.00);
public void imprimirMenu() {
System.out.println("\n\n :: Sistema Bancário :: ");
System.out.println("0 - Sair");
System.out.println("1 - Depositar Conta Corrente");
System.out.println("2 - Sacar Conta Corrente");
System.out.println("3 - Listar Conta Corrente");
System.out.println("4 - Depositar Conta Corrente Especial");
System.out.println("5 - Sacar Conta Corrente Especial");
System.out.println("6 - Listar Conta Corrente Especial");
System.out.println("\nDigite sua opcao?");
}
public TelaConsole() {
boolean resultado = false;
while (true) {
imprimirMenu();
int opcao = teclado.nextInt();
try{
System.out.println("DIGITE UMA LETRA POR FAVOR")
}
switch (opcao) {
case 0:
System.out.println("Saindo...");
System.exit(0);
break;
case 1:
System.out.println("Digite o valor do deposito ?");
double valorDeposito = teclado.nextDouble();
cc.depositar(valorDeposito);
System.out.println("Deposito efetuado com sucesso!!!");
break;
case 2:
System.out.println("Digite o valor do saque ?");
double valorSaque = teclado.nextDouble();
resultado = cc.sacar(valorSaque);
if (resultado == true) {
System.out.println("Saque efetuado com sucesso!");
} else {
System.out.println("Saldo Insuficiente!");
}
break;
case 3:
cc.imprimirConta();
break;
case 4:
System.out.println("Deposito em Conta Corrente Especial");
System.out.println("Digite o valor do deposito ?");
double valorDepositoEspecial = teclado.nextDouble();
cce.depositar(valorDepositoEspecial);
System.out.println("Deposito efetuado com sucesso");
break;
case 5:
System.out.println("Saque Conta Corrente Especial!");
System.out.println("Digite o valor do saque");
double valorSaqueEspecial = teclado.nextDouble();
resultado = cce.sacar(valorSaqueEspecial);
if (resultado == true) {
System.out.println("Saque efetuado com sucesso!");
} else {
System.out.println("Saldo Insuficiente!");
}
break;
case 6:
cce.imprimirConta();
break;
default:
System.out.println("Opção invalida");
break;
}
}
}
public static void main(String[] args) {
new TelaConsole();
}
}