Jump to content
Sign in to follow this  
rikardinhuh

[duvida] throw exceptions

Recommended Posts

rikardinhuh

Boas, gostava que me dessem uma ajuda a perceber esta parte das exceptions, eu sei utilizar o try/catch,  mas disseram-me que é incorrecto utiliza-los em métodos, entao queria que alguem me ajudasse a perceber o porque e como se faz para utilizar throws...Já li muitos tutoriais e codigo e nenhum dos que vi consigo perceber como se usa...

obrigado

Share this post


Link to post
Share on other sites
rikardinhuh

Obrigado mas continuo a nao perceber o porque de lançar excepçoes =S

Share this post


Link to post
Share on other sites
Baderous

Primeiro, quem te disse que não se usavam excepções dentro de métodos...nem sei o que isso quer dizer, porque as excepções são lançadas e tratadas em métodos, mas enfim.

Um caso prático fácil de perceber é quando queres ler um ficheiro. Quando tentas abrir um ficheiro, o código padrão consiste em abrir uma stream sobre esse ficheiro através de uma das muitas classes de streams que Java disponibiliza. No entanto, ao passares a localização do ficheiro ao construtor da stream, podes indicar uma localização onde o ficheiro não exista (por engano, por ex.). Para prevenir este caso, o construtor lança uma excepção de nome FileNotFoundException, que:

1) poderá ser apanhada e tratada no método que invoca o construtor através da instrução try/catch;

2) poderá ser apanhada e tratada num outro método X que invoque o método Y (algures na sua cadeia de invocações de métodos) onde se encontra o construtor (uma vez que as excepções são propagadas de forma ascendente na cadeia de invocação de métodos), sendo que neste caso se indica no cabeçalho do método Y que este lança a excepção em causa, através da instrução throws. Todos os métodos que receberem a excepção e não a tratarem têm de ter também o throws no cabeçalho a alertar quem os invoca deste facto.

Se a excepção for propagada até ao método main e este não tratar a excepção (indicando também o throws), então, durante o tempo de execução, se ocorrer o problema que causa a excepção, o programa estoura.

Tutorial da Oracle: http://download.oracle.com/javase/tutorial/essential/exceptions/index.html

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.