Hallo
jeder kennt hier das Iterator und Iterable Interface. Wie implementiert ihr aber wenn z.B. irgendwas in Iterable#next() eine checked-Exception werfen kann?
Z.B. ich habe die folgente Klasse:
Ich hab das jetzt so geloest, dass ich einfach ein throw new Error(e); im catch-Teil habe. Also ich verpacke die checked-Ex als unchecked.
jeder kennt hier das Iterator und Iterable Interface. Wie implementiert ihr aber wenn z.B. irgendwas in Iterable#next() eine checked-Exception werfen kann?
Z.B. ich habe die folgente Klasse:
Code:
public class SqlData implements Iterable<Data>
{
public class DataIterator implements Iterator<Data>
{
public DataIterator() throws SQLException
{ count = getCount(); pos = 0; }
public boolean hasNext() { return pos<count; }
public Data next()
{
// wie mit der checked-Exception SQLException umgehen?
return getData(pos++);
}
public void remove()
{
// wie mit der checked-Exception SQLException umgehen?
deleteData(pos);
count = getCount();
}
}
// ....
public Data getData(int index) throws SQLException;
public Data getCount() throws SQLException;
public Data deleteData(int index) throws SQLException;
public Iterator<Data> iterator()
{
// wie mit der checked-Exception SQLException umgehen?
return new DataIterator();
}
}
Ich hab das jetzt so geloest, dass ich einfach ein throw new Error(e); im catch-Teil habe. Also ich verpacke die checked-Ex als unchecked.