Pessoa, tem um programa Java extremamente simples que fiz para estudar um pouco sobre exceções. Conseguir tirar boa parte das minhas dúvidas, porém só faltou uma coisa. Gostaria de saber como continuar meu programa após a exceção ser disparada. O meu programa simula um deposito e dispara exceções caso o valor do depópsito seja nagativo ou zero. O usuário pode digitar infinitos valores até decidir sair da aplicação. Porém, quando ele digita um valor negativo ou igual a zero, o programa lança a exceção e é encerrado. O que eu queria é q ele voltasse ao início do método e terminasse a excecução penas quando o usuário quisesse. Seguem as minhas classes:
Classe com a implementação do método
[code]package com.scjp;
import java.util.Scanner;
import com.scjp.excecao.ValorNegativoException;
import com.scjp.excecao.ValorZeroException;
public class ContaSalario {
private double salario;
public void deposita(double valor) throws ValorZeroException,
ValorNegativoException {
System.out.println("O valor do saldo atual é " + this.getSalario());
System.out.println("Digite o valor do depósito");
Scanner scanner = new Scanner(System.in);
valor = scanner.nextDouble();
if (valor < 0) {
throw new ValorNegativoException("O valor precisa ser positivo");
}
if (valor == 0) {
throw new ValorZeroException("O valor precisa ser maior que zero");
}
this.salario += valor;
System.out.println("O valor do salário agora é " + this.getSalario());
System.out.println("Deseja depoisitar mais algum valor?");
String escolha = scanner.next();
if (escolha.equalsIgnoreCase("sim")) {
this.deposita(valor);
}
}
public double getSalario() {
return salario;
}
}[/code]
Classe que testa o método
[code]
package com.scjp;
import com.scjp.excecao.ValorNegativoException;
import com.scjp.excecao.ValorZeroException;
public class TestaContaSalario {
public static void main(String[] args) {
ContaSalario contaSalario = new ContaSalario();
try {
contaSalario.deposita(90);
} catch (ValorZeroException e) {
System.out.println(e.getMessage());
} catch (ValorNegativoException e) {
System.out.println(e.getMessage());
}
finally{
System.out.println("Obrigado!");
}
}
}[/code]
Exceções
[code]
package com.scjp.excecao;
public class ValorNegativoException extends Exception {
/**
*
*/
private static final long serialVersionUID = 1L;
public ValorNegativoException(String msg) {
super(msg);
}
}[/code]
[code]package com.scjp.excecao;
public class ValorZeroException extends Exception {
/**
*
*/
private static final long serialVersionUID = 1L;
public ValorZeroException(String msg){
super(msg);
}
}[/code]