wo muß den die Exception stehen?

Status
Nicht offen für weitere Antworten.

Lengen1971

Aktives Mitglied
Hi,

Voll-Anfänger sucht nach Hilfe.

Ja, ich hab folgende Funktion:

Code:
 public static void getTraffic(String logfile) throws IOException
    {

   }

Aber beim Aufruf meckert der Compiler:

/Users/michael/NetBeansProjects/JavaTrafficUsage/src/javatrafficusage/TrafficUsage.java:27: unreported exception java.io.IOException; must be caught or declared to be thrown
getTraffic("/Applications/ex171108.log");

das ist der Aufruf:

Code:
getTraffic("/Applications/ex171108.log");

Ich weiß nicht, wo genau das Ex. ge-throwed werden muß ... verwirrend.

Danke für Hinweise und evtl. schon mal für elend viel Geduld

Gruß
Michel
 

Lengen1971

Aktives Mitglied
Hi,

danke für die Antwort.
Ich dachte, mit 'throws' brauch ich den try-catch nicht. Dann werd ich mich nochmal reinlesen in deinen Link.

Netbeans sagt z. B.

unreported exception java.io.IOException: must be caught or declarerd to be thrown

Das hört sich so an, wie wenn ich die Wahl hätte zwischen zwei Möglichkeiten. Oder deute ich das falsch?



Gruß
Michel
 
S

SlaterB

Gast
ja du hast die Wahl,

vorher aber keine andere Wahl als in einem Lehrbuch beide Möglichkeiten nachzulesen ;)
 

Lengen1971

Aktives Mitglied
Hi, das funzt nicht:

Code:
public static void getTraffic(String logfile) throws FileNotFoundException
    {
        String input="";
        FileReader io=null;
        try {
        BufferedReader br=new BufferedReader(io=new FileReader("/Applications/domains.txt"));
        } catch (Exception ex) {}
        
        try {
        while(br.ready())
        {
            input=br.readLine();
            String parts[];
            Pattern p = Pattern.compile("- 200 \\d+ (\\d+) \\d+ \\d+ \\w+ (w{0,3}\\..*\\.\\w{2,3}) ");
            Matcher m = p.matcher(input);

            while ( m.find() )
            {
                System.out.println(m.toString());
            }
        }
        } catch (Exception ex) { }
    }


Jetzt meckert er das 'br.ready()' an und das 'br.readLine()'


Ich versteh´s net.

Gruß
Michel
 
S

SlaterB

Gast
es geht doch wohl nach wie vor um
> unreported exception java.io.IOException: must be caught or declarerd to be thrown
oder?

> throws FileNotFoundException
hilft dabei wenig


wenn dir ein Programm sagt, dass du Autos kaufen sollst, dann wird es auch nicht mit Äpfeln zufrieden sein
 

Lengen1971

Aktives Mitglied
Ja, ich hab schon ein Anfänger-Lehrbuch. Da wird in einem Beispiel ein 'throws IOException' angeführt und der try-catch-Block weggelassen. Das hatte ich ja so, aber das meckert er den Funktionsaufruf an.

Gruß
Michel
 

Lengen1971

Aktives Mitglied
Ok, so geht´s aber auch nicht:

Code:
public static void getTraffic(String logfile) throws IOException
    {
        //- 200 0 55617 338 641 HTTP/1.1 [url]www.c4-metal.de[/url]
        String input="";
        FileReader io=null;
        try {
        BufferedReader br=new BufferedReader(io=new FileReader("/Applications/domains.txt"));
        } catch (Exception ex) {}
        
        try {
        while(br.ready())
        {
            input=br.readLine();
            String parts[];
            Pattern p = Pattern.compile("- 200 \\d+ (\\d+) \\d+ \\d+ \\w+ (w{0,3}\\..*\\.\\w{2,3}) ");
            Matcher m = p.matcher(input);

            while ( m.find() )
            {
                System.out.println(m.toString());
            }
        }
        } catch (Exception ex) { }
    }

er meckert immer noch br.ready und br.readline an.

Hm... irgendwie ein Kreisverkehr

Gruß
Michel
 

The_S

Top Contributor
Naja, weil dann eben der "Funktionsaufruf" den Fehler werfen kann. Irgendwo sollte er abgefangen werden. Falls du ihn nicht abfangen willst, musst du ihn bis ganz "nach oben" (also die Main-Methode) durchreichen. Und wenn du die Exception schon mit try-catch abfängst, dann musst du sie nicht noch über "throws" werfen lassen.

Erklärt dein Buch eigenltich alles anhand von "static"-Methoden? Falls ja solltest du dir ein anderes suchen ;) .
 

Lengen1971

Aktives Mitglied
Hi,

in dem Buch gibt´s ja leider immer nur eine main. Keine Unterroutinen. Wenn ich das static weglasse, dann gibt´s ne Menge anderer Fehler.

Oh mann, Java ist echt schwer. Aber danke, ich seh schon, ihr habt etwas Geduld.


Gruß
Michel
 
S

SlaterB

Gast
ok, es bleibt noch 'br cannot be resolved',
das liegt daran dass du br nur innerhalb der try/catches definierst,

denkbar wäre
Code:
public static void getTraffic(String logfile)
        throws IOException
    {
        String input = "";
        FileReader io = null;
        BufferedReader br = new BufferedReader(io = new FileReader("/Applications/domains.txt"));

        while (br.ready())
        {
            input = br.readLine();
            String parts[];
            Pattern p = Pattern.compile("- 200 \\d+ (\\d+) \\d+ \\d+ \\w+ (w{0,3}\\..*\\.\\w{2,3}) ");
            Matcher m = p.matcher(input);

            while (m.find())
            {
                System.out.println(m.toString());
            }
        }
    }
oder ohne throws:

Code:
public static void getTraffic(String logfile)
    {
        String input = "";
        BufferedReader br = null;
        try
        {
            br = new BufferedReader(new FileReader("/Applications/domains.txt"));
        }
        catch (Exception ex)
        {
            ex.printStackTrace();
        }

        try
        {
            while (br.ready())
            {
                input = br.readLine();
                String parts[];
                Pattern p = Pattern.compile("- 200 \\d+ (\\d+) \\d+ \\d+ \\w+ (w{0,3}\\..*\\.\\w{2,3}) ");
                Matcher m = p.matcher(input);

                while (m.find())
                {
                    System.out.println(m.toString());
                }
            }
        }
        catch (Exception ex)
        {
            ex.printStackTrace();
        }
    }

ein catch-Block würde dann auch reichen, wenn es im ersten eine Exception gibt, lohnt es sich nicht, den Rest noch auszuführen,

FileReader io
könnte in jeder Variante wegfallen
 

Lengen1971

Aktives Mitglied
OK, ich hab den throws jetzt in die Main geschrieben, jetzt meckert er gerade nicht.

Aber auf dein Beispiel zu kommen, ich muß NICHT alle Exceptions catchen?

Jetzt hab ich noch´nen Fehler (weil: static hab ich jetzt weg...):

non-static method getTraffic (..) cannot be referenced from a static context.


Gruß
Michel
 

The_S

Top Contributor
Hast du die beiden Seiten durchgelesen und verstanden, die ich dir verlinkt habe? Dann sollte das mit den Exceptions klar sein - falls nicht, bitte nochmal fragen ;) .

Es ging nicht darum, dass du generell static weglässt (funktioniert in diesem Fall natürlich nicht), sondern dass du nicht dazu erzogen wirst static ausschließlich zu verwenden. Gute OO-Kenntnisse sind wichtig für den guten Java-Programmierer ;) .
 
S

SlaterB

Gast
> ich muß NICHT alle Exceptions catchen?

grundsätzlich keine, es sei denn jemand meckert in der Form
> unreported exception java.io.IOException: must be caught or declarerd to be thrown

-------

eine nicht statische Methode kann man nur an einen Objekt der fraglichen Klasse aufrufen,
erstelle dir doch ein solches Objekt
 

Eminent

Bekanntes Mitglied
Also ohne dir zu nahe treten zu wollen solltest du dich vielleicht erstmal ordentlich in die Grundsätze von Java einarbeiten. So wie ich das sehe hast du schon grundsätzliche Probleme mit Methoden und deren Aufruf bzw. dem grundsätzlichen Konzept einer Klasse.

Ansonsten hat Slater dir ja auf die letzte Frage schon ne Antwort gegeben.
 

The_S

Top Contributor
Eminent hat gesagt.:
Also ohne dir zu nahe treten zu wollen solltest du dich vielleicht erstmal ordentlich in die Grundsätze von Java einarbeiten. So wie ich das sehe hast du schon grundsätzliche Probleme mit Methoden und deren Aufruf bzw. dem grundsätzlichen Konzept einer Klasse.

Was vermutlich daran liegt, dass er sich kein gutes Buch ausgesucht hat. Ich kenne Bücher, die bringen dir perfekt Java-Programmierung bei - allerdings ohne OOP ;) .

@Threadsteller

welches Buch liest du denn momentan?
 

Eminent

Bekanntes Mitglied
Ja schätze ich auch fast, deshalb sollte das auch in dem Sinn nicht als harte Kritik gemeint sein sondern als guter Ratschlag.

Ich kenne leider auch mehr als genug Bücher die Java "beibringen" wollen und ich teilweise irgendwie immer OO vermisse ???:L
 

Lengen1971

Aktives Mitglied
Hi,

(keine Angst, ihr tretet mir nicht zu nahe..., ich wollt nur nicht gleich wieder aufgeben).

Nein, die Sache in den Links versteh ich nicht wirklich, sorry für meine Dummheit.

Ich hab den Throw jetzt ganz nach oben:

Code:
public void main(String[] args) throws FileNotFoundException {
        // TODO code application logic here
        readDomains();
        //System.out.println(domains.toString());
        getTraffic("/Applications/ex171108.log");
    }

Meckert er wieder, aber gleich zwei, die IOException und die FileNotFoundException.

Ja, OO-Kenntnisse fehlen mir leider, bin nur Prozeduraler Programmierer, aber ich dacht, ich kriegs hin.


@Hobbit: Markt&Technik, die easy-Serie 'JAVA 2'
 

Eminent

Bekanntes Mitglied
Lengen1971 hat gesagt.:
Hi,

(keine Angst, ihr tretet mir nicht zu nahe..., ich wollt nur nicht gleich wieder aufgeben).

Nein, die Sache in den Links versteh ich nicht wirklich, sorry für meine Dummheit.

Ich hab den Throw jetzt ganz nach oben:

Code:
public void main(String[] args) throws FileNotFoundException {
        // TODO code application logic here
        readDomains();
        //System.out.println(domains.toString());
        getTraffic("/Applications/ex171108.log");
    }

Meckert er wieder, aber gleich zwei, die IOException und die FileNotFoundException.

Ja, OO-Kenntnisse fehlen mir leider, bin nur Prozeduraler Programmierer, aber ich dacht, ich kriegs hin.

Die main kann keinen throw haben da soz. "über" ihr nichts mehr kommt, dass die Exception verarbeiten kann. Du musst also spätestens in der main die Exception über try-catch fangen und entsprechend reagieren.

Die FileNotFoundException tritt übrigens beim "öffnen" der Datei zum Lesen auf, wenn eben die Datei nicht vorhanden ist. Die IOException kann dann beim eigentlichen Lesen auftreten, wenn dort was schief geht.

Versuch mal den groben Ansatz hier für deine Zwecke zu verwenden:

Code:
public static main (String[] args) {
    readDomains();
    getTraffic("/Applications/ex...");
}

private static getTraffic(.....) {
    try {
        // Hier machst du jetzt was du in der Methode getTraffic eigentlich machen willst
    } catch (FileNotFoundException fnfe) {
        // Hier kommt er hin wenn er die Datei nicht findet ... wie du dann drauf reagierst ist deine Sache
    } catch (IOException ioe) {
        // Hier kommt er bei Fehlern beim Lesen usw. hin ... ebenfalls Reaktion nach eigenem Ermessen
    }
}
 

The_S

Top Contributor
Prozedual und OOP sind sehr unterschiedlich und man kann nicht so einfach vom einen zum Anderen. Vermutlich liegt es auch daran, dass du die Links nicht verstehst.

Das Buch kenne ich leider nicht, von Markt&Technik hört man aber nicht so viel gutes. Mein Vorschlag: Les dir die ersten Kapitel (inkl. OOP) in einem besseren Buch durch. Oder - wenn du sonst programmieren kannst - nur ein OOP-Tutorial.

Wenn du dann immer noch dein Markt&Technik Buch lesen möchtest, dann lies das weiter. Ansonsten steig auf ein anderes um.
 

Lengen1971

Aktives Mitglied
Hi Hobbit,

ich hab schon mal ein anderes Buch probiert, aber leider muß ich da schnell passen, weil ich´s nicht mehr nachvollziehen kann... zu kompliziert.
Das M&T Buch hat schöne, verständliche Beispiele. Aber leider, wie ihr schon sagt, ohne die OO-Sache.

Ich bin PHP Programmierer, da gibt´s auch Functions mit Rückgabewerten und auch Klassen, aber das ist alles viel einfacher...

Gruß
Michel
 

Eminent

Bekanntes Mitglied
Hobbit_Im_Blutrausch hat gesagt.:
Eminent hat gesagt.:
Die main kann keinen throw haben da soz. "über" ihr nichts mehr kommt, dass die Exception verarbeiten kann. Du musst also spätestens in der main die Exception über try-catch fangen und entsprechend reagieren.

Seit wann?

SORRY ich nehme das zurück mit der main und thorws, geht anscheinend doch. Kann ich so zwar nicht ganz nachvollziehen aber ne main kann tatsächlich noch ne Exception werfen ... wohin auch immer :bahnhof:
 

Lengen1971

Aktives Mitglied
Hi Eminent,

danke für die Empfehlungen, ich werd mal sehen. Ich les eigentlich leiber in Büchern als Online, vielleicht gibt´s das was zu kaufen.

Gruß
MIchel
 

The_S

Top Contributor
@Lengen1971

wenn du Java programmieren willst musst du dich aber in OOP einlesen. Ohne gehts nicht. Ich weiß, dass ist schwer und vermutlich nur ein schleichender Prozess, aber das A und O von Java!

@Eminent

wird an den UncaughtExceptionHandler weitergeleitet.
 

The_S

Top Contributor
Naja, wenn ich schnell was ausprobieren möchte, das eine Exception werfen kann, dann kommt das throws schon mal in die Main-Methode. Aber in einem "richtigen" Programm hat das da natürlich nichts verloren.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
L wo muß die Jar stehen, Netbeans, Compile Java Basics - Anfänger-Themen 3
M muß durch muss ersetzen Java Basics - Anfänger-Themen 7
W aus ObjectInputStream muß FileInputStream werden Java Basics - Anfänger-Themen 12
I Exception wird gefangen, aber trotzdem in Error Log? Java Basics - Anfänger-Themen 10
W Null-Pointer Exception beim Programmstart Java Basics - Anfänger-Themen 8
Ostkreuz String Exception Java Basics - Anfänger-Themen 8
Fiedelbambu Exception in Application constructor Java Basics - Anfänger-Themen 3
S leeres Array statt Null Pointer Exception ausgeben Java Basics - Anfänger-Themen 20
F abbruch Exception lässt sich nicht erstellen Java Basics - Anfänger-Themen 2
U Warum kriege ich hier eine nullpointer exception, sehe den Fehler nicht (swing) Java Basics - Anfänger-Themen 1
F Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 11 at main.main(main.java:11) Java Basics - Anfänger-Themen 2
M Exception in thread "main" java.util.NoSuchElementException Java Basics - Anfänger-Themen 2
N Exception beim Verwenden von Arraylist? Java Basics - Anfänger-Themen 10
B Compiler-Fehler Fehlermeldung Exception in thread, falsche Eingabewert Java Basics - Anfänger-Themen 2
S JavaKara Null Exception Error Java Basics - Anfänger-Themen 4
T Eigene Exception - ohne werfen abfangen Java Basics - Anfänger-Themen 2
LiFunk Exception: es dürfen nur Nummern eingelesen werden Java Basics - Anfänger-Themen 6
low_in_the_head Eigene Exception nutzen Java Basics - Anfänger-Themen 4
1 Exception Java Basics - Anfänger-Themen 2
S Kriege Fehler "Exception in thread" beim Benutzen von SubStrings. Java Basics - Anfänger-Themen 2
I JAX-RS Exception Handling Java Basics - Anfänger-Themen 4
L Meine erste eigene Exception Klasse Java Basics - Anfänger-Themen 10
J null exception Array Java Basics - Anfänger-Themen 5
H Frage zu Throw Exception Java Basics - Anfänger-Themen 2
O Exception in thread "main" java.lang.ArithmeticException: / by zero Java Basics - Anfänger-Themen 4
M Wie kann ich bei int-Variablen im exception handler auf bestimmte Strings reagieren? Java Basics - Anfänger-Themen 5
C Exception-Frage Java Basics - Anfänger-Themen 3
B Exception in thread "AWT-EventQueue-0" java.util.ConcurrentModificationException Java Basics - Anfänger-Themen 8
I Exception bei Button mit wait() und notifyAll() Java Basics - Anfänger-Themen 3
N Wie teste ich eine geworfene Exception? Java Basics - Anfänger-Themen 8
R Methoden ArrayList clonen wirft exception Java Basics - Anfänger-Themen 3
D Scanner- Exception NoSuchElementException Java Basics - Anfänger-Themen 2
N Exception werfen bei falscher Datumseingabe Java Basics - Anfänger-Themen 14
A Exception handeling mit finally und objektreferenzen Java Basics - Anfänger-Themen 6
D Frage zu Strings einer Exception Java Basics - Anfänger-Themen 4
S Exception Java Basics - Anfänger-Themen 2
J Exception-Aufgabe Java Basics - Anfänger-Themen 8
S Verwenden von throw Exception an der Funktion Java Basics - Anfänger-Themen 2
R Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException Java Basics - Anfänger-Themen 5
S Compiler-Fehler Exception in thread "main" java.lang.Error: Unresolved compilation problem: Java Basics - Anfänger-Themen 6
Z Fragen zu Exception (Throws/throw) Java Basics - Anfänger-Themen 7
OSchriever Exception für Abbrechen-Schaltfläche JOptionpane Java Basics - Anfänger-Themen 9
J Dateien in Verzeichnissen rekursiv auflisten wirft Exception Java Basics - Anfänger-Themen 4
J Exception unreachable Java Basics - Anfänger-Themen 12
O unchecked Exception Java Basics - Anfänger-Themen 4
P Exception werfen Java Basics - Anfänger-Themen 15
B EJB und Arquillian - bekomme Nullpointer Exception beim Aufruf der EJB Klasse Java Basics - Anfänger-Themen 40
S Exception bei Verwendung von LocalDate Java Basics - Anfänger-Themen 19
I Compiler-Fehler Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 5 Java Basics - Anfänger-Themen 3
D Warum die Nullpointer Exception Java Basics - Anfänger-Themen 6
O Exception behandlung einfach Ueben mit Fakt! Java Basics - Anfänger-Themen 10
I OOP Was ist die "Exception Hierarchie" ? Java Basics - Anfänger-Themen 3
U Null Exception aber keine Ahnung warum Java Basics - Anfänger-Themen 5
G Exception und Ausgabe der Duplikate Java Basics - Anfänger-Themen 6
H Try Catch Throw Exception Java Basics - Anfänger-Themen 1
W Exception in Main abfangen oder in der Methode? Java Basics - Anfänger-Themen 10
F Referenz an ein Objekt in einer anderen Klasse erstellen(Nullpointer exception) Java Basics - Anfänger-Themen 6
Mosquera Exception Java Basics - Anfänger-Themen 5
M rekursive division/0 mit exception Java Basics - Anfänger-Themen 18
N Nullpointer exception Java Basics - Anfänger-Themen 4
L Eigene Exception schreiben bei zu langem Array Java Basics - Anfänger-Themen 10
R Exception in thread "main" java.lang.NullPointerException Java Basics - Anfänger-Themen 10
I equals (Override) mit eigener Exception (keine Runtime-Exception) Java Basics - Anfänger-Themen 9
S Array Grenzen-Exception Java Basics - Anfänger-Themen 11
E InputStream im Servlet wirft Exception Java Basics - Anfänger-Themen 5
D Erste Schritte Java.lang.NullPointer.Exception Java Basics - Anfänger-Themen 8
G Arrays out of Bounds exception Java Basics - Anfänger-Themen 2
H Compiler-Fehler Out of Bunce Exception bei einem Char Java Basics - Anfänger-Themen 6
C Compiler-Fehler Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 2 Java Basics - Anfänger-Themen 3
C Null Pointer Exception Java Basics - Anfänger-Themen 10
F Klassen Eigene Exception Bedingungen festlegen Java Basics - Anfänger-Themen 2
G Null Pointer Exception Java Basics - Anfänger-Themen 4
GreenTeaYT Exception und zur OOP fragen? Java Basics - Anfänger-Themen 3
O Exception bei Parse-Vorgang Java Basics - Anfänger-Themen 17
T Exception Problem Java Basics - Anfänger-Themen 5
Z Getter/Setter NullPointer Exception Java Basics - Anfänger-Themen 6
W Nullpointer Exception bei .add(...) Java Basics - Anfänger-Themen 6
L Input/Output InputMismatch.Exception Java Basics - Anfänger-Themen 7
B Exception Liste von Liste Java Basics - Anfänger-Themen 3
D Throw Exception Java Basics - Anfänger-Themen 2
MiMa JavaDoc Exception @throws schlagen an Java Basics - Anfänger-Themen 4
J Exception in thread "main" Java Basics - Anfänger-Themen 1
B Exception richtig einbinden Java Basics - Anfänger-Themen 1
M Exception soll Werte mitgeliefert bekommen Java Basics - Anfänger-Themen 12
M Selbstdefinierte Exception Java Basics - Anfänger-Themen 5
B Exception Throwable Java Basics - Anfänger-Themen 11
M Erste Schritte Start Methode - Exception Java Basics - Anfänger-Themen 1
F Operatoren Wieso fliegt hier eine NullPointer Exception :( Java Basics - Anfänger-Themen 3
F nullpointer exception - arrayerstellung Java Basics - Anfänger-Themen 4
K Iterator-Interface implementieren mit Exception Handlung Java Basics - Anfänger-Themen 1
H Erste Schritte Exception: 0 Java Basics - Anfänger-Themen 2
A Exception vs. Testklasse (Programm testen) Java Basics - Anfänger-Themen 2
L Fehler: Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException Java Basics - Anfänger-Themen 4
K Exception nur im "Debug"-Modus und jedem 3.-5. mal Ausführen Java Basics - Anfänger-Themen 3
S Java memory fehler: Exception in thread "AWT-EventQueue-0" java.lang.OutOfMemoryError: Java heap spa Java Basics - Anfänger-Themen 5
L [JFrame] Exception - woher? Java Basics - Anfänger-Themen 8
N Threads Exception in thread "main"... Feher bei dem Versuch ein Radius zu berechnen Java Basics - Anfänger-Themen 4
R "Missbrauch" von Exception zum Programmfluss Java Basics - Anfänger-Themen 1
U Exception: OutOfMemoryError Java Basics - Anfänger-Themen 11
A Int Eingabe: String mit Exception abfangen. Aber wie? Java Basics - Anfänger-Themen 3

Ähnliche Java Themen

Neue Themen


Oben