Warum bekomme ich "muss gefangen oder für geworfen erklärt werden" in meinem Programm?

8

Ich habe lange an diesem Programm gearbeitet und mein Gehirn ist gebraten. Ich könnte Hilfe von jemandem benutzen, der hineinschaut.

Ich versuche, ein Programm zu erstellen, das eine Textdatei Zeile für Zeile liest und jede Zeile zu einem ArrayList macht, damit ich auf jedes Token zugreifen kann. Was mache ich falsch?

%Vor%

Ich stehe kurz davor, meine Augäpfel hervorzustoßen. Ich habe drei Fehler:

%Vor%

Was mache ich falsch?

    
Luron 19.09.2010, 19:32
quelle

4 Antworten

13

Wenn Sie die meiste Zeit mit I / O in Java arbeiten, müssen Sie IOException behandeln, die jederzeit beim Lesen / Schreiben oder sogar beim Schließen des Streams auftreten kann.

Sie müssen Ihren sensiblen Block in einen try // catch Block setzen und die Exception hier behandeln.

Zum Beispiel:

%Vor%

Ressourcen:

Colin Hebert 19.09.2010, 19:34
quelle
8

Java prüft Exception-Spezifikationen zum Zeitpunkt der Kompilierung. Sie müssen entweder die Ausnahme abfangen oder sie in Ihrer Methodensignatur deklarieren. So würden Sie erklären, dass es möglicherweise von Ihrer Methode ausgelöst wird:

%Vor%

Fangen Sie die Ausnahme ab, wenn Ihre Methode etwas als Antwort benötigt. Erklären Sie es als geworfen, wenn Ihr Anrufer über den Fehler wissen muss.

Diese schließen sich nicht gegenseitig aus. Manchmal ist es nützlich, die Ausnahme abzufangen, etwas zu tun und die Ausnahme erneut zu werfen oder eine neue Ausnahme, die das Original umhüllt (die "Ursache").

RuntimeException und ihre Unterklassen müssen nicht deklariert werden.

    
Andy Thomas 19.09.2010 19:39
quelle
0

Gute IDEs erstellen entweder den catch-Block für Sie oder fügen der Deklaration der Methode die Ausnahme hinzu.

Beachten Sie, dass jede Methode, die Ihre Methode aufruft, wenn Sie die Ausnahmen zur Methodendeklaration gemäß Colins Lösung hinzufügen, auch einen geeigneten catch-Block haben muss oder die Ausnahme in der Methodendeklaration deklarieren muss.

    
Tony Ennis 19.09.2010 20:13
quelle
-3

Ich hatte das gleiche Problem. Ich habe es gelöst, indem ich die Spring-Bibliothek "org.springframework.core"

hinzugefügt habe     
user1999777 21.03.2013 08:23
quelle