Łapanie wyjątków

Łapanie wyjątków
BA
  • Rejestracja:ponad 10 lat
  • Ostatnio:ponad 3 lata
  • Postów:43
0

Hej,

Mam za zadanie stworzyć program w Javie, który odczyta mi dane zamieszczone w pliku csv i przeniesie je do tabeli.

Niestety jako, że doświadczenia z Javą mam bardzo niewiele, to pojawiają się z tym pierwsze problemy, z którymi nie potrafię sobie poradzić.
Do odczytu zawartości plików csv skrzystałem z biblioteki import au.com.bytecode.opencsv.CSVReader;

Mam problem z przechwytywaniem wyjątków, a właściwie nie do końca z tym, ale z tworzeniem samego kodu, gdy wyjątek nie jest przechwycony (plik został zaczytany poprawnie).

Kopiuj
import au.com.bytecode.opencsv.CSVReader;
import java.io.FileReader;


/
public class Projekt {


    @SuppressWarnings("empty-statement")
    public static void main(String[] args) {
        // TODO code application logic here
        String fileName = "Dostawcy.csv";
        String tab_dost[];
        String tekst[];
        CSVReader wczytaj;
        
        try {
        wczytaj = new CSVReader(new FileReader(fileName));
        
        // Łapanie wyjątków
             } catch(Exception e) {
                 System.out.println(e.getMessage());
                 System.out.println("BŁĘDNY PLIK");
             };
        
             while((tekst = wczytaj.readNext())!= null)
                     {
                         System.out.println(tekst[0] + "," + tekst[1]);
                     }
       
    }
    
} 

Ten kod źródłowy rzuca mi następującym błędem:
Exception in thread "main" java.lang.RuntimeException: Uncompilable source code - unreported exception java.io.IOException; must be caught or declared to be thrown
at projekt.Projekt.main(Projekt.java:39)
Java Result: 1

A kiedy próbuję zrobić coś takiego:

Kopiuj
import au.com.bytecode.opencsv.CSVReader;
import java.io.FileReader;

public class Projekt {

    @SuppressWarnings("empty-statement")
    public static void main(String[] args) {
        // TODO code application logic here
        String fileName = "Dostawcy.csv";
        String tab_dost[];
        String tekst[];
        
        try {
        CSVReader wczytaj = new CSVReader(new FileReader(fileName));
        
         while((tekst = wczytaj.readNext())!= null)
                     {
                         System.out.println(tekst[0] + "," + tekst[1]);
                     }
        // Łapanie wyjątków
             } catch(Exception e) {
                 System.out.println(e.getMessage());
                 System.out.println("BŁĘDNY PLIK");
             };
        
            
       
    }
    
} 

to wyrzuca mi błąd, że nie ma pliku.
run:
1
BŁĘDNY PLIK
BUILD SUCCESSFUL (total time: 0 seconds)

Co najlepsze, kiedy z try usunę while, to plik poprawnie wczytuje. Proszę o pomoc jak rozwiązać ten problem, żebym mógl przerzucić dane do tabeli.

bogdans
Moderator
  • Rejestracja:prawie 17 lat
  • Ostatnio:prawie 5 lat
0

Oszukujesz, pierwszy kod jest poprawny i nie ma 39 wierszy. Wniosek, nie podałeś całego kodu.


To smutne, że głupcy są tak pewni siebie, a ludzie mądrzy - tak pełni wątpliwości. Bertrand Russell
BA
  • Rejestracja:ponad 10 lat
  • Ostatnio:ponad 3 lata
  • Postów:43
0

Tak, masz rację. Wyciąłem niepotrzebne komentarze :D

Ale już rozwiązałem swój problem.

Kopiuj
try {
        wczytaj = new CSVReader(new FileReader(nazwa_pliku));
        
            try {
                while((temp = wczytaj.readNext())!= null) wiersze++;
                
        // Łapanie wyjątków
            } catch(Exception e) {
                System.out.println(e.getMessage());
                System.out.println("Nie wczytano danych");
            }

        // Łapanie wyjątków
             } catch(Exception e) {
                 System.out.println(e.getMessage());
                 System.out.println("BŁĘDNY PLIK");
             } 

Wątek do zamknięcia.

wojciechmaciejewski
  • Rejestracja:ponad 12 lat
  • Ostatnio:około 2 lata
  • Postów:560
0

Łap konkretny wyjątek a nie Exception, bo jeżeli rzuci Ci czymś dziwacznym to nawet nie będziesz to tym wiedział

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.