ich die htsjdk SamReader Klasse bin mit wie folgt:Kann ich Exceptions in for-each-Schleife behandeln, ohne zu explizitem Iterator zu wechseln?
try(
SamReader reader = SamReaderFactory.makeDefault().open(new File(filename))
){
for(SAMRecord record : reader){ // potential exception here, based on file input
// process record
}
}
catch(SAMFormatException e){
// rest of loop is skipped by handling exception here
}
Die SamReader Klasse im Grunde liest aus einer Textdatei und erzeugt eine neue SAMRecord aus jeder Zeile in der Textdatei. Die SamReader-Klasse überprüft jede Zeile in der Datei und kann eine Laufzeit-SAMFormatException auslösen. Ich kann diese Ausnahme behandeln, aber ich habe keine Möglichkeit gefunden, mit der for-each-Schleife umzugehen, während ich versuche, den Rest der Datei zu verarbeiten.
Gibt es eine Möglichkeit, die Laufzeitausnahme zu behandeln, während das for-each-Schleifenformat verwendet wird und der Rest der Datei weiter verarbeitet wird? Oder muss ich explizit einen Iterator verwenden, um die Kontrolle darüber zu bekommen?
Dies funktioniert nicht, da die Ausnahme beim Generieren des SAMRecord-Datensatzes ausgelöst wird und nicht während der Verarbeitung. – mattm
@mattm hat eine Lösung mit Iterator hinzugefügt –
Danke für die Lösungsskizze, aber ich bin eigentlich mehr daran interessiert, ob diese Art der Ausnahmebehandlung mit der for-each-Schleife möglich ist oder ob der Iterator-Ansatz notwendig ist. – mattm