On May 14, 11:02 am, "* ^ *" <[email protected]> wrote:
> On May 14, 1:07 pm, miga <[email protected]> wrote:
>
>
>
> > On May 14, 6:59 am, "* ^ *" <[email protected]> wrote:
>
> > > I cannot seem to propagate the throws clause up the calling method.
> > > Why?
>
> > > The relevant code fragments are as below:
> > > class WorldCupCountries{
> > > public WorldCupCountries() throws URISyntaxException{
> > > doSelectionNDisplay();
> > > }
> > > private void doSelectionNDisplay() throws URISyntaxException{
> > > URL dirURL=getClass().getResource(path);
> > > File dir=new File(dirURL.toURI());
> > > }
>
> > > }
>
> > > public class Main {
> > > public static void main(String[] args) throws URISyntaxException{
> > > SwingUtilities.invokeLater(new Runnable(){
> > > public void run() {
> > > // Next line is the source of the error.
> > > new WorldCupCountries();
> > > }
> > > });
> > > }
>
> > > }
>
> > > Exception thrown: Exception in thread "AWT-EventQueue-0"
> > > java.lang.RuntimeException: Uncompilable source code - unreported
> > > exception java.net.URISyntaxException; must be caught or declared to
> > > be thrown.
> > > But I have declared it should be thrown by main(). All input is
> > > greatly appreciated. Thank you.
>
> > You have thrown it, but you never have caught it. That's why finally
> > it is the java runtime machine which throws it.
> > See here the graphics, very explicitly (don't bother the text, it is
> > in French).
>
> >http://www.commentcamarche.net/contents/java/javaexc.php3
>
> Thank you for your input and provided link. But, I an still not
> clear.
> I include a somewhat similar code below, but this one runs:
> public class CopyTextFile {
> // main() just specify IOException. But NetBeans compiles and run.
> No complaint.
> public static void main(String args[]) throws IOException {
> copyFile(inFile, outFile);
> }
>
> public static void copyFile(File fromFile, File toFile) throws
> IOException {
> // Code that might throw an IOException.
> BufferedReader reader = new BufferedReader(new FileReader
> (fromFile));
> BufferedWriter writer = new BufferedWriter(new FileWriter
> (toFile));
> }
>
> }
>
> In both examples, main() specify a checked exception. But in the
> previous example, NetBeans will not compile nor run. In this example,
> compiles and runs. Why?
Not exactly. In your example you also specify a throw Exception on the
class, so that everything throws exception, this is not possible.
You may throw exception on the thread and catch it in the main for
example.
--~--~---------~--~----~------------~-------~--~----~
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/javaprogrammingwithpassion?hl=en
-~----------~----~----~----~------~----~------~--~---