IOException Problem in eigener Klasse

Status
Nicht offen für weitere Antworten.
G

Guest

Gast
Hallo,

ich habe ein Problem mit der Input-Output-Exception. Ich fange gerade mit eigenen Klassen an und wollte zweimal das selbe Programm schreiben, bei dem einmal sich die main() Klasse den Input holt, was auch klappt und einmal der Input in die eigene Klasse ausgelagert wird.

Erstes geht, siehe hier:

Code:
import java.io.*;

class Kapitel303a
{
  String mitteilung;
  Kapitel303a (String str)

  {
    mitteilung = str;
  }

  void sprich()
  {
    System.out.println(mitteilung);
  }
}


class Kapitel303
{
  public static void main (String [] args) throws IOException
  {
    BufferedReader stdin= new BufferedReader(new InputStreamReader(System.in));
    String inData;
    
    System.out.println("Gegebn Sie die Mitteilung ein:");
    inData=stdin.readLine();
    System.out.println();
    
    Kapitel303a einObjekt = new Kapitel303a(inData);

    einObjekt.sprich();
  }
}

Letzteres bringt mir die Info der fehlenden Exception:

Code:
import java.io.*;

class Kapitel3031a
{
  BufferedReader stdin=new BufferedReader(new InputStreamReader(System.in));
  String inData;


  void back()
  {
    System.out.println("Geben Sie die Mitteilung ein:");
    inData=stdin.readLine();
    System.out.println();
    System.out.println(inData);
  }
}


class Kapitel3031
{
  public static void main (String [] args) throws IOException
  {
    Kapitel3031 einObjekt = new Kapitel3031();
    
    einObjekt.back();
  }
}


Meine Vermutung ist, dass ich bei public static void main (String [] args) das Anhängsel "throws IOExcpetion" weglassen kann. Dafür muss es aber in die eigene Klasse nur habe ich bis lang nicht die richtige Stelle gefunden.

Davon abgesehen bin ich mir bei der eigenen Klasse auch insgesamt nicht 100% sicher.
Meiner Ansicht nach braucht man keinen Konstruktor, da ich mir nichts vom erstellten eigenen Klassen-Objekt holen möchte. Aber sicher bin ich mir nicht ganz.

Über jegliche Hilfe oder Hinweise würde ich mich sehr freuen.
 

musiKk

Top Contributor
Du musst dich dazu mit Exception-Handling auseinandersetzen, aber du sagst, du lernst noch, von daher kommt das vielleicht erst noch.

Dennoch: readLine() deklariert, dass es eine IOException werfen kann und darauf musst du reagieren, weil es sich um eine sog. checked Exception handelt. Entweder, du wirfst die Exception aus der back()-Methode weiter, wie du es in der main() auch machst, oder du packst ein try-catch um den readLine()-Aufruf.
Zum Lernen reicht es aber erstmal, wenn du die Exception wirfst. Also wie in der main() auch ein throws IOException hinter das back().
 

diggaa1984

Top Contributor
du kannst die throw-Anweisung durchaus weglassen. Der Grund warum sie im ersten Beispiel dort stehen muss, ist die readLine-Methode des BufferedReaders

Diese Exception muss dann behandelt werden, sei es durchs weiterleiten nach oben in der Hierarchie (throws) .. oder durch eigene Behandlung (try-catch-block). Daher musst du auch diese Behandlung in deiner eigenen Klasse durchführen.

Code:
void back() { 
    System.out.println("Geben Sie die Mitteilung ein:"); 
    try {
        inData=stdin.readLine();  //bei Fehler an der Stelle springt er in catch-block .. rest wird nicht mehr ausgeführt
        System.out.println(); 
        System.out.println(inData); 
    } catch (IOException e) {
        e.printStackTrace();
    }
}
 

diggaa1984

Top Contributor
was wie, is doch alles richtig *g* ... war so aus der kalten, und fühlte mich fast verunsichert durch deinen post :D kurz ???:L und :### und ja :roll:
 
G

Guest

Gast
schon einmal vielen Dank für eure Hlfe.

@musikk du hast recht, ich vermute es kommt noch.
Ich lerne nach folgender Anleitung:
http://www.gailer-net.de/tutorials/java/Notes/chap30/progExercises30.html

Ich dachte, ich müsste auf die Lösung selbst draufkommen, da in der Aufgabenstellung folgendes steht:
"Das ist wirklich ein interessanteres Programm als es scheinen mag, da es eine schwierige Designentscheidung verlangt. Wer soll den Anwender nach der Grußmitteilung fragen, die statische Methode main() von der HalloTester Klasse oder das HalloObjekt? Beides wird funktionieren, aber eines (denke ich) ist "logischer" als das andere. Wenn Sie sich nicht entscheiden können, schreiben Sie beide Versionen und entscheiden sich dann. "

Jedoch wurde bis zu diesem Zeitpunkt noch nicht auf try and catch eingegangen, daher ist der Input in der eigenen Klasse für mich eigentlich noch nicht machbar.

Aber dank euch habe ich schon einmal einen Vorgeschmack, wie ich das Problem in Zukunft handhaben kann.

Danke
 
G

Guest

Gast
@diggaa1984

Ich habe jetzt mal eine Code-Darstellung mit try and catch als gegeben angesehen, doch leider erhalte ich immer noch einen Fehler:

Code:
import java.io.*;

class Kapitel3031a
{
  BufferedReader stdin=new BufferedReader(new InputStreamReader(System.in));
  String inData;


  void back()
  {
    System.out.println("Geben Sie die Mitteilung ein:");
    try
    {
    inData=stdin.readLine();
    System.out.println();
    System.out.println(inData);
    }
    catch (IOException e)
    {
      e.printStackTrace();
    }
  }
}


class Kapitel3031
{
  public static void main (String [] args) throws IOException
  {
    Kapitel3031 einObjekt = new Kapitel3031();
    
    einObjekt.back();
  }
}


Und zwar lautet diese wie folgt:

Kapitel3031.java:32: cannot find symbol
symbol : method back()
location: class Kapitel3031
einObjekt.back();
^
1 error

(Nicht wundern: ich schreibe absichtlich in MS-Dos, da ich dort auf alles selbst achten und schreiben muss)

ich kann mir leider keinen Reim daraus machen, gerade weil sie jetzt auch zur ersten Version so gut wie identisch ist.

Könnte ich eure Hilfe nochmals in Anspruch nehmen. Danke schon einmal im Voraus.
 

diggaa1984

Top Contributor
muss wohl daran liegen das es eine klasse mit nem a hinten dran ist (class Kapitel3031a) ^^
dein objekt ist von einer anderen klasse, welche diese Methode nicht kennt
 
G

Guest

Gast
logisch, logisch, ...

das kommt davon, wenn man so unaussagekräftige Namen wählt :roll:
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
J Problem mit IOException Java Basics - Anfänger-Themen 2
D Problem mit IOException Java Basics - Anfänger-Themen 17
P IOException Java Basics - Anfänger-Themen 20
E IOException Java Basics - Anfänger-Themen 4
H IOException in meinem Programm Java Basics - Anfänger-Themen 7
GadgetSofa IOException fehlt aber wo einfügen? Java Basics - Anfänger-Themen 6
N Java.io.ioexception: Stream closed Java Basics - Anfänger-Themen 2
A IOException Java Basics - Anfänger-Themen 10
R Classpath java.io.IOException: Could not find resource mybatis-config.xml Java Basics - Anfänger-Themen 5
T JUNit Test IOException Java Basics - Anfänger-Themen 5
T Warum brauche ich diese IOException? Java Basics - Anfänger-Themen 30
A JEditorPane + html -> java.io.IOException: invalid url Java Basics - Anfänger-Themen 4
D Input/Output IOException bei createNewFile() Java Basics - Anfänger-Themen 4
E Input/Output IOException beim Kompilieren Java Basics - Anfänger-Themen 3
H java.io.IOException: Failed to open... Java Basics - Anfänger-Themen 6
JAVAnnik IOException Java Basics - Anfänger-Themen 17
S 'IOException must be caught or declared' - was tun? Java Basics - Anfänger-Themen 12
H exception "java.io.IOException: Stream closed" Java Basics - Anfänger-Themen 10
D Unhandled Exception type IOException in Constructor Java Basics - Anfänger-Themen 1
S eien frage zu IOException Java Basics - Anfänger-Themen 7
F wie mit einer ioexception umgehen Java Basics - Anfänger-Themen 10
D JSP: IOException: Stream closed nach dispatchter.forward(..) Java Basics - Anfänger-Themen 13
0 Was macht eine IOException? Java Basics - Anfänger-Themen 4
M Nach IOException fortfahren Java Basics - Anfänger-Themen 6
J System.in.read(): Unhandled exception type IOException Java Basics - Anfänger-Themen 12
C java.io.IOException: Zugriff verweigert Java Basics - Anfänger-Themen 2
H IOException bei FileReader Java Basics - Anfänger-Themen 3
F MouseListener - Unhandled IOException Java Basics - Anfänger-Themen 2
S BufferReader IOException Java Basics - Anfänger-Themen 3
C overridden method does not throw java.io.IOException Java Basics - Anfänger-Themen 4
F selstsame IOException error=3 Java Basics - Anfänger-Themen 4
G Fehlermeldung - java.io.IOException: Das Handle ist ungültig Java Basics - Anfänger-Themen 3
M Fehlermeldung unreported exception java.io.IOException. Java Basics - Anfänger-Themen 2
S IOException bei BufferedReader Java Basics - Anfänger-Themen 15
N Unhandled exception type IOException? Java Basics - Anfänger-Themen 8
C Methodenaufruf mit throws IOException Java Basics - Anfänger-Themen 2
K Verständnis Problem bei Server/Client Java Basics - Anfänger-Themen 2
I WildFily - unterschiedliche Libs im Projekt verursachen Problem Java Basics - Anfänger-Themen 11
imocode Vererbung Problem mit Vererbung Java Basics - Anfänger-Themen 2
L Taschenrechner Problem Java Basics - Anfänger-Themen 4
I Applikationsserver (WildFly) - Zugriff auf Ressourcen.. Problem mit Pfade Java Basics - Anfänger-Themen 10
A ScheduledExecutorService problem Java Basics - Anfänger-Themen 7
marcelnedza Problem mit Weltzuweisung, JavaKarol Java Basics - Anfänger-Themen 13
XWing Methoden rückgabe Problem? Java Basics - Anfänger-Themen 6
M Erste Schritte Collatz Problem max int Java Basics - Anfänger-Themen 3
M Problem bei verschachtelter for-Schleife bei zweidimensionalen Arrays Java Basics - Anfänger-Themen 3
C GLOOP Problem beim Erstellen der Kamera Java Basics - Anfänger-Themen 9
nelsonmandela Problem bei Ausgabe einer Switch - Case Funktion Java Basics - Anfänger-Themen 5
frager2345 Problem mit Methode Java Basics - Anfänger-Themen 4
L Problem bei Rechnung mit Math.pow Java Basics - Anfänger-Themen 13
A Thread-Schreibe-Lese-Problem Java Basics - Anfänger-Themen 4
SUPERTJB return Problem Java Basics - Anfänger-Themen 3
sserio BigInteger Problem Java Basics - Anfänger-Themen 4
JordenJost Taschenrechner problem Java Basics - Anfänger-Themen 5
K Problem mit "Random" Java Basics - Anfänger-Themen 5
S Datei anlegen Problem! Groß- und Kleinschreibung wird nicht unterschieden Java Basics - Anfänger-Themen 4
sserio Problem beim Anzeigen Java Basics - Anfänger-Themen 5
xanxk Problem For-Schleife mit Charakter Java Basics - Anfänger-Themen 2
L Unbekanntes Problem mit 2d Array Java Basics - Anfänger-Themen 6
sserio Liste erstellt und ein Problem mit dem Index Java Basics - Anfänger-Themen 8
sserio Schwimmen als Spiel. Problem mit to String/ generate a card Java Basics - Anfänger-Themen 4
J Schleife Problem Java Basics - Anfänger-Themen 2
D Problem mit der Erkennung von \n Java Basics - Anfänger-Themen 2
milan123 das ist meine aufgabe ich hab das problem das bei mir Wenn ich die Richtung der Linien verändern will und drei davon sind richtig, verändere ich die 4 Java Basics - Anfänger-Themen 3
M Verständins Problem bei Aufgabe Java Basics - Anfänger-Themen 4
HeiTim Problem mit der Kommasetzung an der richtigen stelle Java Basics - Anfänger-Themen 59
Temsky34 Problem mit dem Code Java Basics - Anfänger-Themen 17
P Problem mit Calendar.getDisplayName() Java Basics - Anfänger-Themen 8
C Problem mit mehreren Methoden + Scanner Java Basics - Anfänger-Themen 5
P Datei einlesen, nach Begriff filtern und in Datei ausgeben. Problem Standardausgabe über Konsole Java Basics - Anfänger-Themen 19
M Problem mit Klassenverständnis und Button Java Basics - Anfänger-Themen 8
EchtKeineAhnungManchmal hallo habe ein Problem mit einer Datei -> (Zugriff verweigert) Java Basics - Anfänger-Themen 4
H Problem mit Verzweigungen Java Basics - Anfänger-Themen 6
H Problem mit Rückgabewert Java Basics - Anfänger-Themen 7
josfe1234 JAVA FX problem Java Basics - Anfänger-Themen 3
A Code Problem Java Basics - Anfänger-Themen 6
Henri Problem von Typen Java Basics - Anfänger-Themen 7
J Problem mit "ArrayIndexOutOfBoundsException" Java Basics - Anfänger-Themen 11
K jackson Mapping - Problem mit Zeitzonen Java Basics - Anfänger-Themen 10
B Threads Problem mit mehreren Threads Java Basics - Anfänger-Themen 38
I Output BigDecimal anstatt double / Problem beim Rechnen Java Basics - Anfänger-Themen 16
D Schleifen Problem Java Basics - Anfänger-Themen 2
H So viele Fehlermeldungen, dass ich nicht weiß wo das Problem ist. Java Basics - Anfänger-Themen 6
J JAVA-Problem blockiert MEDIATHEKVIEW Java Basics - Anfänger-Themen 13
T Problem mit Lehrzeichen und String bei einfacher Chiffre Java Basics - Anfänger-Themen 8
J extends Problem Java Basics - Anfänger-Themen 2
C Polymorphie-Problem Java Basics - Anfänger-Themen 3
Kalibru Problem bei Ausgabe von Objekt Java Basics - Anfänger-Themen 1
I Format Problem mit Wert - bekomme 0,10 anstatt 10,00 Java Basics - Anfänger-Themen 6
J Problem mit einer Methode die gewissen Inhalt einer Array löschen soll Java Basics - Anfänger-Themen 9
J Problem mit einer Methode, die beliebig viele Objekte in Array speichern soll Java Basics - Anfänger-Themen 6
J Allgemeines Problem mit Klassen Java Basics - Anfänger-Themen 5
U Problem mit dem initialisieren meines Strings in einer Schleife Java Basics - Anfänger-Themen 5
amgadalghabra algorithmisches Problem Java Basics - Anfänger-Themen 19
J Traveling Salesman Problem [Arrays] Java Basics - Anfänger-Themen 9
R ArrayList Problem Java Basics - Anfänger-Themen 6
InfinityDE Problem mit Datenübergabe an Konstruktor Java Basics - Anfänger-Themen 7
C RegEx Problem Java Basics - Anfänger-Themen 4
J Anfänger TicTacToe, Problem bei Gewinnoption, sowohl Unentschieden Java Basics - Anfänger-Themen 8
E Taschenrechner GUI Problem mit Fehlerhandling Java Basics - Anfänger-Themen 6

Ähnliche Java Themen

Neue Themen


Oben