Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.java.programmer > #7059
| From | Lew <lewbloch@gmail.com> |
|---|---|
| Newsgroups | comp.lang.java.programmer |
| Subject | Re: Trying to Understand Purpose of a Catch Block for IOException in the Presence of One for FileNotFound |
| Date | 2011-08-12 14:27 -0700 |
| Organization | http://groups.google.com |
| Message-ID | <357bc706-6c57-44bd-b43a-0f601cc1ad2f@glegroupsg2000goo.googlegroups.com> (permalink) |
| References | <0f7fb5c4-6031-4778-9ef7-de757bbdda39@m5g2000prh.googlegroups.com> |
KevinSimonson wrote: > If I write a piece of code that constructs an object of class > <PrintWriter> by passing it an object of class <BufferedWriter>, > constructed by passing _it_ an object of type <FileWriter> (all three > classes under <java.io>), don't have a <throws> clause, have only a > <catch> clause for <FileNotFoundException>, and then try to compile > the code the compiler complains, telling me, "unreported exception > java.io.IOException java.io.IOException: must be caught or declared to > be thrown". Of course, if I put a <catch> clause there for > <IOException>, that fixes the problem and the program compiles just > fine. > > If, on the other hand, I write a piece of code that constructs an > object of class <Scanner>, constructed by passing it an object of type > <File>, don't have a <throws> clause for <FileNotFoundException>, and > don't put the constructor call in a <try> block at all, I get a > similar complaint about me not saying anything about exception > <FileNotFound>. > > Finally, if I have some code that has constructors for _both > <PrintWriter> and_ <Scanner>, I have to have a <catch> clause for > _both <IOException> and_ <FileNotFoundException>, in order to keep the > compiler happy. But in such a situation I have not been able to find > a way to _actually get <IOException> thrown_! What is the purpose of > having a <catch> block for <IOException> if nothing I do with my code > will actually throw an <IOException> that is not a > <FileNotFoundException>? Or, alternately, is there something I can do > to _get_ an <IOException> that is not a <FileNotFoundException> > thrown? Since 'FileNotFoundException' is a subtype of 'IOException', a catch block for the latter will catch the former. Another subtype of 'IOException' that is not a super- or subtype of 'FileNotFoundException' is 'EOFException'. You could write a loop to keep reading a file (that is found) past its end to throw 'EOFException'. A catch block for 'IOException' will catch both 'FileNotFoundException' and 'EOFException', as well as any other subtype of 'IOException'. -- Lew
Back to comp.lang.java.programmer | Previous | Next — Previous in thread | Find similar
Trying to Understand Purpose of a Catch Block for IOException in the Presence of One for FileNotFound KevinSimonson <kvnsmnsn@hotmail.com> - 2011-08-12 08:39 -0700
Re: Trying to Understand Purpose of a Catch Block for IOException in the Presence of One for FileNotFound Knute Johnson <september@knutejohnson.com> - 2011-08-12 08:54 -0700
Re: Trying to Understand Purpose of a Catch Block for IOException in the Presence of One for FileNotFound markspace <-@.> - 2011-08-12 08:57 -0700
Re: Trying to Understand Purpose of a Catch Block for IOException in the Presence of One for FileNotFound KevinSimonson <kvnsmnsn@hotmail.com> - 2011-08-12 11:19 -0700
Re: Trying to Understand Purpose of a Catch Block for IOException in the Presence of One for FileNotFound markspace <-@.> - 2011-08-12 12:08 -0700
Re: Trying to Understand Purpose of a Catch Block for IOException in the Presence of One for FileNotFound Patricia Shanahan <pats@acm.org> - 2011-08-12 12:26 -0700
Re: Trying to Understand Purpose of a Catch Block for IOException in the Presence of One for FileNotFound Andreas Leitgeb <avl@gamma.logic.tuwien.ac.at> - 2011-08-12 19:35 +0000
Re: Trying to Understand Purpose of a Catch Block for IOException in the Presence of One for FileNotFound Patricia Shanahan <pats@acm.org> - 2011-08-12 12:31 -0700
Re: Trying to Understand Purpose of a Catch Block for IOException in the Presence of One for FileNotFound KevinSimonson <kvnsmnsn@hotmail.com> - 2011-08-12 13:10 -0700
Re: Trying to Understand Purpose of a Catch Block for IOException in the Presence of One for FileNotFound Lew <lewbloch@gmail.com> - 2011-08-12 14:27 -0700
csiph-web