Exceções em JAVA

Oi galera, é o seguinte, to começando a utilizar exceções no java e to com umas duvida que ta me matando: devo fazer o tratamento de exceções no método ou na classe principal??

Exemplo, tenho que fazer um método de uma conta bancária que realiza saques e não posso sacar valores negativos e outros métodos que não vem ao caso. Tenho que usar o JOption pra criar uma “tabela” de escolhas no main e vou usar o switch para selecionar as opções. E é ai que eu me confundo, supondo que o 1 seja sacar, o que eu faço?

meu main até agora:

package appcontabancaria;

import javax.swing.JOptionPane;

public class AppContaBancaria {

    public static void main(String[] args) {

        int op;

        ContaBancaria conta;

        do {
            op = Integer.parseInt(JOptionPane.showInputDialog("Digite:"
                    + "\n1 - sacar"
                    + "\n2 - depositar"
                    + "\n3 - visulizar saldo"));
            switch (op) {
                case 1:

                    break;
                case 2:
                    break;
                case 3:
                    break;
                case 4:
                default:
            }
        } while (op >= 1 && op <= 4);
    }

}

e meu método sacar:

public void sacar(double valor){
    try {
        saldo = saldo - valor; //sinto que ta errado?
    } catch (IllegalArgumentException erro){
        JOptionPane.showInputDialog(null,"Impossível sacar valor negativo");
    } 
}

me perdoem mesmo, essa parte da programação ta acabando comigo rsrs

Tendo em vista que o Exception (a exceção) está S E M P R E com o Try, eu te respondo com uma pergunta.
ONDE você precisa usar o try?
Se está usando na main, a exceção é na main. Se está usando no método, a exceção é no método. Se está em ambos, então a exceção vai estar em ambos!
Não tem lugar certo, depende de onde tu quer colocar.

E aí? Sabendo disso, onde fica a exceção?

public void sacar(double valor) {
 double novoSaldo = saldo - valor;
 if (novoSaldo < 0) {
  throw new IllegalArgumentException("Impossível sacar valor negativo");
 } else {
  saldo = novoSaldo;
 }
}

Para usar:

 try {
  conta.sacar(valor);
 } catch (IllegalArgumentException e) {
  JOptionPane.showInputDialog(null, e.getMessage());
 }

Vc precisa também instanciar a variável conta:

 ContaBancaria conta = new ContaBancaria();
1 curtida