Sistema Bancario

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();
	}

}

Estes links podem te ajudar:
Java Try Catch
Java Exceptions

Quando se usa o modelo MVC para desenvolver seu programa
a responsabilidade de tratar as exceptions são as classes da Visão
as classes de Controller e Modelo apenas propagam e disparam
os try/catch e mensagens de erro são geradas na parte da visão

Eu sei que vocês não gostam de dar o peixe, e sim ensinar a pescar…

Por Favor, será que alguem com um tempinho poderia resolver esse problema pra min, os codigos já estão aí prontos, eu preciso entregar esse trabalho amanha, e não vou dar conta.

Seria isso daqui que você gostaria de fazer?

if (saldo < valor) { throw new SaldoInsuficienteException("Saldo disponivel: " + saldo); }

Classe SaldoInsuficienteException

public class SaldoInsuficienteException extends RuntimeException {

	public SaldoInsuficienteException(String message) {
		super(message);
	}

}

Espero ter ajudado.
vlw