Łapanie wyjątków

Odpowiedz Nowy wątek
2015-01-23 17:06
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).

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:

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.

Pozostało 580 znaków

2015-01-23 20:33
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

Pozostało 580 znaków

2015-01-23 20:44
0

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

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

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.

Pozostało 580 znaków

2015-01-23 21:07
0

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

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0