2017-11-23 7 views
1

Ich erhalte den Fehler als "nicht gemeldete Ausnahme ioexception; muss beibehalten oder deklariert werden, um geworfen zu werden". Es ist der Fehler im angegebenen Pfad oder im try - catch-Block.Ich bekomme "nicht gemeldete Ausnahme ioException; muss gehalten werden oder für geworfen erklärt werden"

import java.io.*; 
import java.util.regex.*; 

class RegexMobileExtractor { 

    public static void main(String[] args) { 
     try { 
      Pattern p = Pattern.compile("(0|9)?[7-9][0-9]{9}"); 
      PrintWriter pw = new PrintWriter("C:\\Users\\HP\\Desktop\\CODE\\JAVA_EX\\copy\\output.txt"); 
      BufferedReader br = new BufferedReader(new FileReader("C:\\Users\\HP\\Desktop\\CODE\\JAVA_EX\\copy\\input.txt")); 

      //PrintWriter pw = new PrintWriter("output.txt"); 
      //BufferedReader br = new BufferedReader(new FileReader("input.txt")); 

      String line = br.readLine(); 
      while(line!= null) { 
       Matcher m = p.matcher(line); 
       while(m.find()) { 
        pw.println(m.group()); 
       } 

       line = br.readLine(); 
      } 

      pw.flush(); 
      pw.close(); 
      //br.close(); 
     } catch (FileNotFoundException obj) { 
      System.out.println("errr occured"); 
     } 
    } 
} 
+2

so fangen 'IOException', kann es mehrere Fänge geben –

Antwort

1

Diese Codezeile: br.readLine(); kann IOException werfen. Dies ist chacked exception und Compiler Kraft Sie es zu verarbeiten, das ist, warum Sie zusätzliche catch Block hinzufügen:

catch (IOException e) { 
    e.printStackTrace(); 
} 
0

Ändern Sie die Zeile

} catch (FileNotFoundException obj) { 
    System.out.println("errr occured"); 
} 

zu

} catch (IOException obj) { 
    System.out.println("errr occured"); 
} 

Seit IOException a Eltern von FileNotFoundException Klasse, werden Sie beide Arten der Ausnahme behandeln.

Verwenden Sie auch try-with-resources, die Ihre Dateien automatisch schließen würde.

Verwandte Themen