unreported exception IOException (Java)

Diskutiere unreported exception IOException (Java) im Webmaster Hilfe / Programmierer Forum Forum im Bereich Computerprobleme; Guten Tag Bin gerade dabei ein kleines Quiz zu schreiben und dabei habe ich in einer zweiten Klasse eine Methode fürs Dateiauslesen. Dafür braucht...

  1. #1 lol1996lol, 06.06.2013
    Zuletzt bearbeitet: 06.06.2013
    lol1996lol

    lol1996lol Erfahrener Benutzer

    Dabei seit:
    10.12.2010
    Beiträge:
    450
    Zustimmungen:
    0
    Guten Tag
    Bin gerade dabei ein kleines Quiz zu schreiben und dabei habe ich in einer zweiten Klasse eine Methode fürs Dateiauslesen. Dafür braucht man ja die Erweiterung "throws IOException". Die Datei mit der Methode wird auch ohne Probleme Compiliert nur in der Datei in der die Methode dann aufgerufen wird gibt der Compiler folgende Fehlermeldung aus:
    Code:
    test.java:10:23: error: unreported exception IOException; must be caught or declared to be thrown
        quiz.frageauslesen(4);
                                ^ 
    
    Hier mal beide Codeschnipsel:
    Die Methode:
    Code:
    public String frageauslesen(int x)throws IOException
      {
        int i = 0;
        String zeile = "";
        FileReader fragenfile;
        BufferedReader fragenbuffer;
        
        
        fragenfile = new FileReader("fragen.txt");
        fragenbuffer = new BufferedReader(fragenfile);
        while( (zeile = fragenbuffer.readLine()) != null )
        {
          i++;  
          if(i == x)
          {
            break;
          }
        }
        
        return zeile;
      }
    



    Der Aufruf:
    Code:
       quiz quiz = new quiz();
        
        quiz.frageauslesen(4);
    

    MFG
     
  2. Anzeige

    schau mal hier: Windows-Wartungs-Tool. Viele Probleme lassen sich damit einfach beheben. Oftmals ist der PC dann auch schneller!
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren.
  3. #2 Blaxxun, 06.06.2013
    Blaxxun

    Blaxxun aka Noisy

    Dabei seit:
    06.11.2005
    Beiträge:
    6.171
    Zustimmungen:
    0
    Entweder du schmeißt die IOException weiter, wenn du
    Code:
    quiz.frageauslesen(4);
    
    aufrufst (throws IOException für die Methode innerhalb derer die Funktion aufgerufen wird), oder du fängst sie vorher ab:
    Code:
    try{
    quiz.frageauslesen(4);
    }catch(IOException ex){
    System.out.println(ex.getMessage());
    }
    
    Schau dir mal Error bzw. Exception Handlung für Java an: Catching and Handling Exceptions (The Java™ Tutorials > Essential Classes > Exceptions)
     
  4. #3 lol1996lol, 06.06.2013
    Zuletzt bearbeitet: 06.06.2013
    lol1996lol

    lol1996lol Erfahrener Benutzer

    Dabei seit:
    10.12.2010
    Beiträge:
    450
    Zustimmungen:
    0
    Ok Danke nur beides funktioniert leider nicht dieses mal kommt die Fehlermeldung: "test.java:14:22: error: <identifier> expected
    catch(IOException)
    "
     
  5. #4 Blaxxun, 06.06.2013
    Blaxxun

    Blaxxun aka Noisy

    Dabei seit:
    06.11.2005
    Beiträge:
    6.171
    Zustimmungen:
    0
    Müßig den Fehler in deinem Code zu finden ohne den Code zu kennen.
    Entwder ntuzt du hier die [ CODE]-Tags oder bsp. Pastebin.com mit Syntax Highlight.
     
  6. #5 lol1996lol, 06.06.2013
    lol1996lol

    lol1996lol Erfahrener Benutzer

    Dabei seit:
    10.12.2010
    Beiträge:
    450
    Zustimmungen:
    0
    ohh sry wusste gar nicht das es diese Funktion hier im Forum gibt. Hier sind die Codeschnipsel:
    Die Methode:
    Code:
    public String frageauslesen(int x)throws IOException
      {
        int i = 0;
        String zeile = "";
        FileReader fragenfile;
        BufferedReader fragenbuffer;
        
        
        fragenfile = new FileReader("fragen.txt");
        fragenbuffer = new BufferedReader(fragenfile);
        while( (zeile = fragenbuffer.readLine()) != null )
        {
          i++;  
          if(i == x)
          {
            break;
          }
        }
        
        return zeile;
      }
    der Aufruf:
    Code:
    quiz quiz = new quiz();
        
        try
        {
          quiz.frageauslesen(4);
        }
        catch(IOException)
        {
          System.out.println(ex.getMessage());
        } 
     
  7. #6 Blaxxun, 06.06.2013
    Blaxxun

    Blaxxun aka Noisy

    Dabei seit:
    06.11.2005
    Beiträge:
    6.171
    Zustimmungen:
    0
    Ja, vlt. guckst du dir meinen Code nochmal an und vergleichst ihn mit deinem, sofern du ihn korrigierst funktioniert der nämlich auch.
     
  8. #7 lol1996lol, 06.06.2013
    lol1996lol

    lol1996lol Erfahrener Benutzer

    Dabei seit:
    10.12.2010
    Beiträge:
    450
    Zustimmungen:
    0
    Code:
    try { quiz.frageauslesen(4);
     } 
    catch(IOException ex) 
    { 
    System.out.println(ex.getMessage()); 
    }
    
    Das "ex" habe ich extra weggemacht weil auch damit nicht richtig compeliert wurde. Die genaue Fehlermeldung kann ich dir morgen sagen da ich jetzt nicht mehr am Rechner bin.
     
  9. #8 lol1996lol, 08.06.2013
    lol1996lol

    lol1996lol Erfahrener Benutzer

    Dabei seit:
    10.12.2010
    Beiträge:
    450
    Zustimmungen:
    0
    Also folgendes:
    Habe den Fehler jetzt gefunden: Ich wusste nicht das auch in der Datei in der die Methode aufgerufen wird die java.io importiert werden muss.
    Wenn ich das ex hinter dem IOException lasse funktioniert es nicht wenn ich es aber wegnehme funktioniert es.
     
  10. #9 Blaxxun, 08.06.2013
    Blaxxun

    Blaxxun aka Noisy

    Dabei seit:
    06.11.2005
    Beiträge:
    6.171
    Zustimmungen:
    0
    Am besten du nutzt mal eine ordentliche IDE z.B. Netbeans, dort wird dir direkt gesagt wenn ein Import fehlt und eingefügt.
     
  11. #10 lol1996lol, 09.06.2013
    lol1996lol

    lol1996lol Erfahrener Benutzer

    Dabei seit:
    10.12.2010
    Beiträge:
    450
    Zustimmungen:
    0
    Mit NetBeans kann ich jetzt aber nicht mehr richtig compelieren. Er zeigt mir Fehler an wo keine sind z.B. kann ich andere Klassen nicht mehr importieren oder in dem Fehler oben sagt er jetzt (Wo es im JavaEditor funktioniert), dass die IOException gar nicht im try Block benutzt wird.
     
  12. Lotus

    Lotus Erfahrener Benutzer

    Dabei seit:
    17.02.2007
    Beiträge:
    2.428
    Zustimmungen:
    0
    Solche IDE's wie Netbeans, Eclipse oder IntelliJ wissen ziemlich genau warum sie deinen Code nicht kompilieren. Ich würde dir zwar eher zu Eclipse anstatt zu Netbeans raten, ist aber alles Geschmackssache. Behebe einfach mal die Fehler die dir die IDE ansagen, dann wird das ganze auch wieder erfolgreich kompiliert ;)

    Falls du das alleine nicht schaffst, poste bitte nochmal deinen aktuellen Code und die dazugehörige Fehlermeldung zusammen.
     
  13. #12 lol1996lol, 09.06.2013
    Zuletzt bearbeitet: 09.06.2013
    lol1996lol

    lol1996lol Erfahrener Benutzer

    Dabei seit:
    10.12.2010
    Beiträge:
    450
    Zustimmungen:
    0
    Ja Eclipse hab ich am Anfang auch versucht zu benutzen aber ich komme damit einfach nicht kla :) . Habe es jetzt komplett geschafft aber danke für das Angebot.

    Habe jetzt allerdings ein anderes Problem:
    Da ich für dieses "Quiz" eine Grafische Oberfläche brauche habe ich mir jetzt ein dritte Klasse geschrieben in der die einzelnen Fenster erstellt werden und als Methoden aufgerufen werden können:
    Code:
    import javax.swing.*;
    import java.awt.*;
    import java.awt.event.*;
    import java.io.*;
    
    
    public class quizgui
    {
      /*static Variablen*/
      static public String antwortreturn = "";
      static public int weiterint = 0;
      static public String frage = "";
      /*Fensterframes */
      static public JFrame menue = new JFrame("Das Menue");
      static public JFrame spiel = new JFrame("Start1");
      static public JFrame richtig = new JFrame("Richtig");
      static public JFrame falsch = new JFrame("falsch");
      /*Buttons werden erstellt*/
      static public JButton start = new JButton("Start");
      static public JButton anleitung = new JButton("Anleitung");
      static public JButton highscore =  new JButton("Highscore");
      static public JButton Aweiter = new JButton("weiter");
      static public JButton Lweiter = new JButton("weiter");
      static public JButton weiterpopup = new JButton("weiter");
      /*Eingabefelder */
      static public JTextField antwort = new JTextField(15);
      /*Textfelder*/
      static public JLabel Lfalsch = new JLabel("Falsch");
      static public JLabel LRichtig = new JLabel("Richtig");
      static public JLabel Lfrage = new JLabel(frage);
      
      
      
      public void menue()
      {
        /*ActionListener f�r den ersten Men�button wird erstellt (starten)*/
        ActionListener startli = new ActionListener()
        {
          public void actionPerformed (ActionEvent e)
          {
            menue.setVisible(false);
            
          }
        };
        
        /*Menue mit drei Buttons wird erstellt*/
        menue.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        menue.setLayout(new GridLayout(3, 1));
        menue.add(start);    
        menue.add(anleitung);
        menue.add(highscore);
        start.addActionListener(startli);
        menue.setSize(400 , 600);
        menue.setVisible(true);
        /*Menue wird beendet*/
      }
      
      ActionListener Lweiterli = new ActionListener()
      {
        public void actionPerformed (ActionEvent e)
        {
          
          richtig.setVisible(false);
          richtig.setVisible(false);
          
        }
      };
      
      public void frage()
      {
        frage = "test";
        /*Action Listener f�r das Fragenfenster*/
        ActionListener Aweiterli = new ActionListener()
        {
          public void actionPerformed (ActionEvent e)
          {
            antwortreturn = antwort.getText();
            spiel.setVisible(false);
            spiel.remove(antwort);
            spiel.remove(Aweiter);
            
          }
        };
        /*Fragenfenster mit der Frage,Eingabe und Weiter Button*/
        spiel.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        spiel.setLayout(new GridLayout(3, 1));
        spiel.add(Lfrage);
        spiel.add(antwort);
        spiel.add(Aweiter);
        Aweiter.addActionListener(Aweiterli);
        spiel.setSize(400, 600);    
        spiel.setVisible(true);  
        /*Fragenfenster wird beendet*/
      }
      
      public void falsch()
      {
        falsch.setLayout(new GridLayout(2, 1));
        falsch.add(Lfalsch);
        falsch.add(Lweiter);
        Lweiter.addActionListener(Lweiterli);
        falsch.setSize(400, 600);  
        falsch.setVisible(true);
        
        
      }
      
      public void richtig()
      {
        richtig.setLayout(new GridLayout(2, 1));
        richtig.add(LRichtig);
        richtig.add(Lweiter);
        Lweiter.addActionListener(Lweiterli);
        richtig.setSize(400, 600);  
        richtig.setVisible(true);
        
        
      }
      
      public quizgui()
      {
        
      }
    }
    
    
    
    Und ja ich weiß ich habe das sehr warscheinlich sehr umständlich gemacht aber das ist das erste mal das ich wirklich aktiv mit einer Gui arbeite.

    Nach der ersten Runde muss ich die Felder ja löschen um diese nicht doppelt und dreifach angezeigt zu bekommen. Jetzt habe ich aber das Problem das ich das Text Label nicht in eine Variable schreiben kann weil ich sonst dort nichts reinschreiben kann. Aber ,so sehe ich das, ich brauch ja eine um das Feld nachher zu löschen. Habe mal ein Bild angehängt wie es im nachhinein aussieht.
    Rot: Dort soll die Frage stehen
    Blau: dort wird die Antwort eingegeben
     

    Anhänge:

  14. Lotus

    Lotus Erfahrener Benutzer

    Dabei seit:
    17.02.2007
    Beiträge:
    2.428
    Zustimmungen:
    0
    Du musst die Felder nicht löschen, sondern deren Inhalt. Entweder du clearst das Label / Textfeld oder du überschreibst es gleich über die setText() - Methode,
     
  15. #14 lol1996lol, 09.06.2013
    lol1996lol

    lol1996lol Erfahrener Benutzer

    Dabei seit:
    10.12.2010
    Beiträge:
    450
    Zustimmungen:
    0
    Ohh Ok denn Befehl kannte ich nicht. Jetzt funktioniert es ohne Probleme.
    Noch eine letzte Frage: Kann man irgendwie sagen das auf etwas gewartet werden soll?
    Er soll erst wieder das Fragen Fenster öffnen wenn der ActionListener von dem Antwort Dialog aktiviert wird.
    Ich habe es im Moment mit einer while-Schleife die die ganze Zeit wartet bis eine Variable auf eins gesetzt wurde. Dies scheint mir aber ein wenig sehr umständlich.
     
  16. Anzeige

    Es ist generell erstmal empfehlenswert alle ggf. veralteten oder fehlerhaften Treiber zu scannen und auf neue zu aktualisieren. Hier kannst du einen Treiber-Scanner downloaden. Das erspart oftmals viel Ärger und hilft gegen diverse Probleme.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren.
  17. Lotus

    Lotus Erfahrener Benutzer

    Dabei seit:
    17.02.2007
    Beiträge:
    2.428
    Zustimmungen:
    0
    So pauschal kann ich da jetzt keine Antwort gebe, da ich deinen Code jetzt nicht überblicke bzw deren Struktur dahinter. Warum schreibst du nicht im ActionListener vom Antwort-Dialog das das Fragefenster wieder eingeblendet werden soll?
     
  18. #16 lol1996lol, 09.06.2013
    lol1996lol

    lol1996lol Erfahrener Benutzer

    Dabei seit:
    10.12.2010
    Beiträge:
    450
    Zustimmungen:
    0
    Da in meiner Hauptdatei die Antwort ausgewertet wird und Highscore dazu gerechnet / abgezogen wird Ebenfalls liegt dort der Countdown wie viele Fragen noch übrig sind. Auch wird in der Hauptklasse der Zufallsgenerator etc. Diese Klasses soll wirklich nur dazu verwendet werden um die Fenster zu erstellen und ein und Ausgaben anzuzeigen.
     
Thema:

unreported exception IOException (Java)

Die Seite wird geladen...

unreported exception IOException (Java) - Ähnliche Themen

  1. Tastaturtester mit Java

    Tastaturtester mit Java: Hallo Leute, ich wollte gerade mal auf die Schnelle ein Tastaturtester mit Java bauen. Grund ist ein neuer Encoder, der nächste Woche...
  2. Java 7

    Java 7: Hallo :) Ich kann mir kein Java Installieren weil er mir in den Programmen schon "Java 7 Update 9" anzeigt. Deinstallieren funktioniert auch...
  3. Hauptmenü für Spiel in Java

    Hauptmenü für Spiel in Java: Hallo Leute, ich habe ein kleines Problem. Ich sollte für die Uni ein Spiel in Java schreiben und habe mich dabei für das Applet entschieden,...
  4. java

    java: Hallo, täglich kommt ein Fenster mit: - JAVA - laden sie eine wesentliche Ergänzung auf ihren PC! Installer_java_deutsch.exe (könnte ihren PC...