Por que tenho que tratar o new Throw Exception();

Bom dia a todos !!

Bom primeiramente gostaria de entender o condigo que eu fiz:

Eu criei duas classes Uma Classe Conta e Classe Excecoes, essa utima classe e para gerenciar os erros da classe conta.
Vamos la:

  // Classe Excecoes:
 
  public class Excecaes(){
     // Metodos Construtores:

   public Excecoes(){}
  
    public Excecoes(String e){
     try{
     new throw Exception(); 
    }catch(Exception ex){
         System.out.println(e);
} 
   
} 
} 

Por que eu tenho que tratar new Throw Exception();
E viavel criar uma classe so para erro, ou tem outra forma.

 // Classe Conta

  public class Conta(){
   private double saldo;
 
 public double setSaldo(double valor){
      if(this.saldo<valor){
       new Excecoes("Saldo Insuficiente");
      }else this.saldo-=valor;


 }   

}

Tua classe de Excecoes tem que extender Exception!

Leia mais sobre tratamento de exceções:

http://www.google.com.br/search?hl=pt-BR&q=java+tratamento+exce%C3%A7%C3%A3o&btnG=Pesquisa+Google&meta=

[quote=g4j]Tua classe de Excecoes tem que extender Exception!

Leia mais sobre tratamento de exceções:

http://www.google.com.br/search?hl=pt-BR&q=java+tratamento+exce%C3%A7%C3%A3o&btnG=Pesquisa+Google&meta=[/quote]

Indiretamente.

Pode estender de RuntimeException, tornando-a uma exceção não-verificada, onde o código de tratamento não é obrigatório.

sim ele extendeu, não esquenta com isso

a questão é : é legal criar uma classe para isso já que temos as classes Exception, ou depende do contesto do problema
E tambem não entendi por o netbeans pedi para tratar com try catch o new Throw Exception();

[quote=jolivier] sim ele extendeu, não esquenta com isso
[/quote]
é, mas no código que vc nos passou não aparece.

sim, inclusive é uma boa prática vc criar suas próprias exceções.

Porque vc está lançando uma exception, e quem irá tratá-la? ou vc coloca um try/catch ou o teu método lança a exceção com throws

O mais correto seria vc criar uma SaldoInsuficienteException:

public class SaldoInsuficienteEception extends Exception {
     ...
}

vc lança quando o saldo for insuficiente

public void retirar(double valor) throws SaldoInsuficienteException {
     if (saldo - valor < 0) {
          throw new SaldoInsuficienteException();
     }
}

aí quem vai usar o método retirar() vai ter que tratar SaldoInsuficienteException.

try {
       objeto.retirar(500.00);
} catch (SaldoInsuficienteException s) {
       //trata
}

Valeu pela ajuda muito obrigado