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”
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??
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.
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
fernandomoncao
eu criei a classe, mas não consegui inserir no método que poderá apresentar o erro
importjava.util.Scanner;publicclassConta{publicStringnome;publicintnumConta;publicfloatsaldo;publicfloatvalor;Scannerinput=newScanner(System.in);publicConta(Stringn,intnCont,floats){nome=n;numConta=nCont;saldo=s;}publicConta(Stringn,intnCont){nome=n;numConta=nCont;saldo=0;}publicvoidsetNome(){this.nome=input.next();}publicvoidsetNumConta(){this.numConta=input.nextInt();}publicvoidsetSaldo(){this.saldo=input.nextFloat();}publicStringgetNome(){returnnome;}publicintgetNumConta(){returnnumConta;}publicfloatgetSaldo(){returnsaldo;}publicvoiddeposito(floatval){saldo=saldo+val;}publicvoidsaque(floatval){try{if(val<saldo){saldo-=val;}}catch(SaldoInsuficienteExceptione){}}publicvoidcriaConta(){System.out.println("Digite o nome: ");setNome();System.out.println("Digite o nº da conta: ");setNumConta();System.out.println("Digite o saldo: ");setSaldo();}publicStringtoString(){return"Cliente: "+getNome()+"\nConta: "+getNumConta()+"\nSaldo: "+getSaldo();}}