Java: try catch error, must be caught to be thrown

I have tried to create a method to load files but it is not working the way it should. Why do I get this error? Is there a problem with my try-catch block?

NamnMetod.java:157: error: unreported exception InterruptedException; must be caught or declared to be thrown
   EventQueue.invokeAndWait(new Runnable() {

This is my code:

   public static void hämtaFrånText() {
   EventQueue.invokeAndWait(new Runnable() {
   @Override
       public void run() {
          try {
             String aktuellMapp = System.getProperty("user.dir");
             JFileChooser fc = new JFileChooser(aktuellMapp);
             int resultat = fc.showOpenDialog(null);

             if (resultat != JFileChooser.APPROVE_OPTION) {
                JOptionPane.showMessageDialog(null, "Ingen fil valdes!");
                System.exit(0);
             }

                String fil = fc.getSelectedFile().getAbsolutePath();
                String[] namn = new String[3];
                String output ="";

                BufferedReader inFil = new BufferedReader(new FileReader(fil));
                String rad = inFil.readLine();          
                int antal = 0;
                   while(rad != null) {
                       namn[antal] = rad;
                       rad = inFil.readLine();
                       antal++;
                   }
                   inFil.close();           
            }catch(FileNotFoundException e1) {      
                JOptionPane.showMessageDialog(null,"Filen hittades inte!");
            }
            catch(IOException e2) {     
                JOptionPane.showMessageDialog(null,"Det misslyckades");
            }
      }              
   });
}   
Jon Skeet
people
quotationmark

It's got nothing to do with the try/catch block in the run() method. The problem is with the method that calls invokeAndWait... EventQueue.invokeAndWait() is declared to throw InterruptedException, which is a checked exception... so either you need another try/catch block (around the call) or your hämtaFrånText method should declare that it can throw InterruptedException too.

people

See more on this question at Stackoverflow