2016-07-26 18 views
-2

Unten ist mein Code, wo ich eine bestimmte Zeile aus einer Ausgabedatei erhalten. Es gibt mir einen Fehler. Kann mir bitte helfen wie ich neu dazu bin.Unbehandelt Ausnahme-Typ IOException beim Abrufen einer Ausgabe aus einer Textdatei mit Methode

private final static String ThirdDeviceName=iPhone(); 



    public static String iPhone() throws IOException { 

     BufferedReader br = new BufferedReader(new FileReader("output.txt")); 
      String str; 
      int start = 0; 
     int end = 0; 
      int count = 0; 

      while((str = br.readLine())!= null) 
      {   
      StringTokenizer st = new StringTokenizer(str," "); 
      count++; 
      System.out.println(st.nextToken());  
      } 
      br.close(); 
     return str; 

    } 
+0

Was sagt der StackTrace? – TheLostMind

+0

Es ist 'BufferedReader br = neuer BufferedReader (neuer FileReader (neue Datei (" output.txt ")));'. – VatsalSura

+0

@ VatsalSura Das sollte eigentlich egal sein. Sie können eine Datei oder einen Pfad an FileReader übergeben, so oder so. – Mark

Antwort

1

Kurze Antwort: Ihre Methode löst eine IOException, aber Sie fangen es nicht überall. Es ist also unbehandelt. Sie können diese Methode nicht für eine Konstante verwenden, wenn sie eine Ausnahme auslöst.

Verwenden Sie einen try-catch-Block, anstatt die Ausnahme in Ihrer Methode erneut auszulösen, oder verwenden Sie ein nicht finales Attribut, das Sie in einer Methode festlegen, in der Sie den try-catch-Block ausführen können.

+0

Danke, dass du es versuchen wirst –

1

Sie müssen die Ausnahme weiterhin behandeln, wenn Sie sie statischen Feldern zuweisen. Eine Möglichkeit, dies zu tun wäre:

private final static String ThirdDeviceName; 

static { 
    try { 
    ThirdDeviceName=iPhone(); 

    } catch (IOException e){ 
    throw new RuntimeException(e); 
    } 
} 

Aber es wäre ein besserer Ansatz zu sein, um die Ausnahme in der iPhone() Methode zu behandeln.