Streams und Exception

Diskutiere Streams und Exception im Allgemeine Java-Themen Bereich.
L

LimDul

Entweder ich bin gerade zu blöd oder folgendes geht nicht:

Java:
public method() throws IoException {
  List<String> list = ...;
  FileWriter writer = ....;
  list.stream().forEach(writer:write);
}
Eclipse besteht auf einem try/catch Block im Stream - was den Stream unleserlich macht und insbesondere bekomme ich die nicht als IO Exception nach draußen geworfen.

Bin ich zu blöd oder kann ich wirklich in einem Stream keine Operationen aufrufen, die Checked Exceptions werfen?
 
MoxxiManagarm

MoxxiManagarm

Du kannst es höchstens so schreiben:
Java:
public method()  {
  List<String> list = ...;
  FileWriter writer = ....;
  list.stream().forEach((String s) -> {
    try {
      writer.write(s);
    } catch (IOException e) {
      // do something
    }
  });
}
Schön ist was Anderes ;-)
 
mihe7

mihe7

Java:
    } catch (IOException e) {
      // do something
    }
Java:
throw new UncheckedIOException(e);
:p
 
L

LimDul

Klar, das geht - aber das ist dann Overkill. Mach ich es halt ganz klassisch mit einer for-each Schleife. (Insbesondere da es sich eh gerade um ein One-Shot Tool handelt um aus einer CSV andere CSV-Dateien zu erzeugen)
 
L

LimDul

Ist dann nicht Java schon Overkill? :D
Ne, da steckt schon einiges an Logik drin. Ich versuchs mal abstrakt zu erklären :)

Kurzfassung: Es gib eine Excel, wo eine gewisse - ich sag mal Spezifikation - beschrieben ist. Pro Zeile quasi ein Datensatz.
Wir haben ein Modelling Tool (als Eclipse-Plugin), mit dem wir unsere Daten modellieren und konfigurieren. Dort sind auch Tabellenstrukturen definiert und es gib einen Mechanismus aus CSV oder Excel Dateien zu laden.

Nur ist unser Modell näher an einer "Normalform" (wie bei Datenbanken) aufgebaut, während die Excel mehr an den Bedürfnissen der Leute orientiert ist, die die Spezifikation machen. Das heißt, da sind z.B. 7 Spalten drin wo jeweils ein x drin ist. Ich brauch aber 7 CSV-Dateien am Ende - und zwar quasi jeweils das Subset daraus, wo in der jeweiligen Spalte ein x drin ist. Plus Datenmapping von Texten auf IDs.

Und diese Excel ist noch nicht fertig, die lebt weiter (Daher ist One-Shot vielleicht nicht ganz richtig, aber man kann es irgendwann wegwerfen).
 
Thema: 

Streams und Exception

Passende Stellenanzeigen aus deiner Region:
Anzeige

Neue Themen

Anzeige

Anzeige
Oben