Stream musíte použít tak, aby k žádné chybě nemohlo dojít už z principu, pokud potřebujete odchytávat chyby, máte to špatně navrženo, nebo špatně uvažujete, je třeba si uvědomit, že ve streamu máte pracovat jen s daty, která potřebujete a tím výběrem ty možné chyby odfiltrujete a žádný try-catch nepotřebujete, protože ho máte ho implementovaný pomocí filter.
Takže i tady platí, že si musíte věc dobře promyslet, aby to bylo elegantní, ale s trochu jinou filosofií.
V podstatě dříve jste uvažoval takto, dej další záznam, je to typ A, udělám to, je to typ B, udělám zase toto, ...
A nyní musíte uvažovat takto, ze souboru záznamů vyberu záznamy typu A a s nimi udělám toto, dále ze souboru záznamů vyberu záznamy typu B a udělám zase toto. Výsledky pak spojím do jiného seznamu.
A co za to dostanu? Možnost paralelizace, protože výběr ze souboru můžete dělat na jednom procesoru, použítí funkce paraleleně na mnoha procesorech, protože na pořadí zpracování nezáleží a dopředu víte co se všemi vybranými prvky máte udělat. Což pro první uvedený příklad neplatí.