É necessario criar uma classe?

7 respostas
F

nesse exemplo é necessário criar a classe SaldoInsuficienteException?

1- Crie uma exceção não-verificada chamada SaldoInsuficienteException que é lançada quando o saldo de uma conta é menor que o valor que o cliente deseja sacar, e exibe uma mensagem adequada como “Saldo insuficiente”

Eu não posso utilizar apenas:

try{

}

catch{

}

7 Respostas

L

Vais ter que criar um objeto exception com o nome SaldoInsuficienteException ou criar uma classe com esse nome extendendo de uma exception…

Eu aconselharia criar uma classe, assim pode utilizar em qualquer parte do sistema , já um objeto, vai estar restrito a uma classe ou as classes que estenderem desta ou classes que criarem um objeto que possui esta exception…

victor.godinho

Dê uma olhada como funciona o try catch antes…

try { // bloco que pode gerar exceção. } catch( /*exceção*/ ) { // código tratando caso a exceção desse catch ocorra. } catch(/*exceção numero 2*/) { // código tratando caso essa outra exceção ocorra. } finally { // o que deve ser executado após finalizar o bloco acima, ou seja, caso de erro ou não. }

Bem… se no catch, você já sabe que é onde você recebe a exceção, e podem existir trilhões de catch’s, e estão te pedindo para você tratar/criar essa exceção em particular, o que você vai fazer?? :open_mouth:
Criar a exceçãooo!!! Aeeeeeeee!!! ^^

Como que se cria sua própria exceção:
Cria uma classe e dá extends em Exception, ou RuntimeException.

E… mais nada…

Mas kara… é melhor você saber como funciona Exception antes de criar as suas.

O keller já teve essa dúvida uma vez: http://www.guj.com.br/posts/list/18408.java

Falows…

danieldestro

Exceção “não-verificada”, imagino que seja uma exceção não “checked”. Ou seja, seria subclasse de RuntimeException, por exemplo. Semanticamente acho inadequado, haja vista que esta deveria ser “checked”, ou seja, filha de java.lang.Exception para ser tratada explicitamente (obrigatoriamente com try/catch ou throws).

F
eu criei a classe, mas não consegui inserir no método que poderá apresentar o erro
import java.util.Scanner;

public class Conta {
	public String nome;
	public int numConta;
	public float saldo;
	public float valor;
	
	Scanner input = new Scanner(System.in);
	public Conta(String n, int nCont, float s){
		nome = n;
		numConta = nCont;
		saldo = s;
		
	}
	
	public Conta(String n, int nCont){
		nome = n;
		numConta = nCont;
		saldo = 0;
	}
	
	public void setNome(){
		this.nome= input.next();
	}
	
	public void setNumConta(){
		this.numConta = input.nextInt();
	}
	
	public void setSaldo(){
		this.saldo= input.nextFloat();
	}
	
	public String getNome(){
		return nome;
	}
	
	public int getNumConta(){
		return numConta;
	}
	
	public float getSaldo(){
		return saldo;
	}
	
	public void deposito(float val ){
    	saldo = saldo + val;

	}
	
	public void saque(float val){
		try{
			if (val < saldo){
				saldo -= val;
				
			}	
		}catch (SaldoInsuficienteException e){	
			
		}
	}
	
	public void criaConta(){
		System.out.println("Digite o nome: ");
		setNome();
		System.out.println("Digite o nº da conta: ");
		setNumConta();
		System.out.println("Digite o saldo: ");
		setSaldo();

	}
	
	public String toString(){
		return "Cliente: " +getNome()+ "\nConta: " +getNumConta()+ "\nSaldo: " +getSaldo();
	}
	
}
public class SaldoInsuficienteException extends Exception {
	
	public SaldoInsuficienteException(){
		
	}
}

esse é o meu código

como fazer para declarar de forma adequada a aexceção?

danieldestro

Minha apostila de Java (Introdução) tem um exemplo igualzinho. Olha lá: http://java.danieldestro.com.br
Boa sorte.

F

vlw daniel

ViniGodoy

Você quer lançar a exceção. O código que vc colocou é para captura-la.

Quem captura a exceção é quem usa a sua classe.

Fica assim:

public void saque(float val){ if (val > saldo){ throw new SaldoInsuficienteException(); } saldo -= val; }

Quem for usar sua classe vai fazer:

try { conta.saque(1000); } catch (SaldoInsuficienteException e) { JOptionPane.showMessageDialog("Saldo insuficiente: " + conta.getSaldo()); }

Entendeu a diferença?

Criado 5 de agosto de 2008
Ultima resposta 5 de ago. de 2008
Respostas 7
Participantes 5