Throw e throws - qual a utilidade no tratamento de excessões

Pessoal, eu peguei um material sobre tratamento de excessões, mas da forma como tava escrito, eu não entendi nada sobre throw e throws. Alguém poderia me dar uma definição clara p/ que serve cada um desses 2 e o que ocorreria no caso de acontecer uma excessão e eu ter no código só o bloco try catch ou eu ter só o throws ou só o throw. Por que até agora pelo que eu vi, o throw e o throws não serve p/ nada, só p/ deixar o código mais confuso hehehe
Vou colocar um exemplo de código que use o throw, throws e o try catch… talvez com esse exemplo fique mais fácil de me ajudar

[b]public class CarroBomba {

public void ligar() {System.out.println("Ligado!");}
public void desligar() {System.out.println("Desligado!");}    

public void mover() throws SuperAquecimentoException {
    System.out.print("Qual o estado: ");
    String temperatura = Console.readString();
    if (temperatura.equals("anormal")) {
        throw new SuperAquecimentoException("Vai explodir tudo!!!");
    }
}

public static void main(String[] args) {
    CarroBomba c = new CarroBomba();
    try {
        c.ligar();
        c.mover();
    } 
    catch(SuperAquecimentoException e) {
        System.out.println("Agora sujou....");
		System.out.println(e);                        
    } 
    finally {
        c.desligar();
    }
}

}

class SuperAquecimentoException extends Exception {
public SuperAquecimentoException () { }
public SuperAquecimentoException (String msg) {
super(msg);
}

}[/b]

throws diz que aquele método PODE lançar uma exceção, ou seja, o método mover() pode dar erro, lançando a exceção SuperAquecimentoException.
O throw é a diretiva que lança a exceção, ou seja, se o teste

if (temperatura.equals("anormal")) 

retornar true, então será lançada a exceção, na linha

throw new SuperAquecimentoException("Vai explodir tudo!!!");

Vc disse que eles não servem para nada, mas experimente passar “anormal” para a variável temperatura… será lançada a exceção…

O try e o catch servem para tratar a exceção, ou seja, se um método que PODE lançar uma exceção, de fato lançá-la, o fluxo do prgrama vai para o catch correspondente, para o tratamento adequado

Espero ter ajudado

Valeu :grin: Ajudou sim