Dúvida quanto a utilização de exceções e como mostra-las na tela...?

/*Boa noite pessoal… A minha dúvida assola as minhas noites de sono (rs). Nao consigo assimilar as exceções em java. Estou com

  • duvida onde eu coloco os tratamentos, se é npo método ou no main e assim vai, nao se preocupem em me falar as regras de java pois
  • estou seguindo o livro scjp 6. SO não sei onde colocar os tratamentos, como faço pra lançar uma exceção na tela pra eu ver… Segue
  • o exercicio do livro e tentei resolver mais acho que não esta correto.
  • Propagando e capiturando exceções
  • Neste exercicio tentaremos criar dois métodos que lidarão com exceções. Um deles é o método main(), que chamará outro método. Se uma
  • exceção for lançada no outro método, ele terá que manipula-la. Uma instrução FINALLY será incluida para indicar que tudo foi concluído.
  • O método chamado será denominado reverse(), e inverterá a ordem dos caracteres da string. Se a string não tiver caractéres, ele propagará
  • uma exceção até o método main().
  • 1 - Crie uma classe chamada Propagate e um método main(), que permanecerá vazio por enquanto
  • 2 - Crie um método chamado reverse(). Ele usará como argumento e retornará uma String
  • 3 - Em reverse(), verifique se a string tem um comprimento igual a 0 usando o método String.lenth(). Se o comprimento for igual a 0 (zero)
  • ele lançará uma exceção.
  • 4 - Agora no método main tentaremos chamar esse método e manipular qualquer exceção em potencial. Além disso, incluíremos uma instrução FINALLY
  • que nos informará que a exceção foi concluída.*/

[code]import java.util.*;
public class Propagate {

private String name;


String reverse(String s) {
	String str = "";
	try {
		for(int t = s.length() - 1; t > 0; t--) { // t recebe o tamanho de s(argumento). Se o tamanho for maior ou iqual a 0
			str += s.charAt(t);					  // str recebe a ultima letra da string s e assim por diante ate a primiera letra
		}										  // += faz o autoboxing apontando para a nova referencia assim a variável str recebe os char(t)
	} catch (Exception e) {
		e.printStackTrace();	// Retorna o mapa de propagação da pilha
	}
	return str;
}


public String getName() {
	return name;
}


public void setName(String name) {
	this.name = name;
}


public static void main(String[] args) {
	Scanner s = new Scanner(System.in);
	Propagate p = new Propagate();
	
	System.out.print("Insira seu nome: ");
	p.setName(s.nextLine());
	p.reverse(p.getName());
}

}[/code]

String s = e.getMessage(); // Pega o string e exibe onde vc quiser...

Fala ai diegohsi, blz cara?? espero que suas noites de sono sejam mais tranquilas :lol:
Eu peguei o seu codigo e fiz umas modificações que de repente pode te ajudar, acredito que essa seja a melhor maneira de fazer o exercicio proposto, caso não seja solicito a ajuda dos colegas do forum.

import java.util.*;

public class Propagate {
    private String name;
    public String reverse(String s) throws Exception {
        //Usei o throws Exception no metodo para tratar isso so na Main
        String str = "";

        if (s.trim().length() != 0) {//Coloquei o trim() para remover qualquer espaço
            for (int t = s.length() - 1; t >= 0; t--) {
                //adicionei o '=' em  t >= 0 pois estava comendo a primeira letra
                str += s.charAt(t);			
            }
        }else{
            //Aki criei uma Exception caso o comprimento do String seja vazio
            throw new Exception();
        }
        return str;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public static void main(String[] args) {
        Scanner s = new Scanner(System.in);
        Propagate p = new Propagate();
        //Utilizei o Try Catch para capturar a exceção na Main()
        try {
            System.out.print("Insira seu nome: ");
            p.setName(s.nextLine());
            System.out.println(p.reverse(p.getName()));
        } catch (Exception e) {//Ele entra aki caso o nome digitado seja em Branco
            System.out.println(e.getMessage());
            e.printStackTrace();
        }finally{//O finally ele executa com ou sem exceção, esse bloco sempre é executado
            System.out.println("A exceção foi concluída");
        }
    }
}

Aproveitei para pesquisar a sua duvida e achei um artigo interessante em http://www.dcc.ufrj.br/~comp2/TextosJava/Excecoes%20em%20Java.pdf chamado Resumo dos conceitos e regras gerais do uso de exceções em Java de autoria de Miguel Jonathan DCC/IM/UFRJ (rev. maio de 2010).

Abração 8)
Max

[quote=Carlos_ds_jar]String s = e.getMessage(); // Pega o string e exibe onde vc quiser... [/quote]

Você está de brincadeira, não é?
Se manipular Exceção fosse algo tão simples, seriamos todos mais felizes.

A questão maior é a manipulação de uma determinada exceção e não simplesmente “imprimir” sua stackTrace() e/ou mensagem de erro.
Diego, tem um artigo do Sérgio Taborda que aborda justamente a questão de Exceções, achei um ótimo artigo e lhe recomendo a leitura dele.

São três artigos, sendo eles: Exceções: Conceitos: http://sergiotaborda.wordpress.com/desenvolvimento-de-software/java/trabalhando-com-excecoes-conceitos/
Exceções: Classes Utilitárias: http://sergiotaborda.wordpress.com/desenvolvimento-de-software/java/excecoes-classes-utilitarias/
Exceções: Boas Práticas, Más Práticas: http://sergiotaborda.wordpress.com/desenvolvimento-de-software/java/excecoes-boas-praticas-mas-praticas/

Vão lhe ajudar muito.
Abraços.