Package de.tu_bs.isbs.util.io
Class IOIteratorException
java.lang.Object
java.lang.Throwable
java.lang.Exception
de.tu_bs.isbs.util.io.IOIteratorException
- All Implemented Interfaces:
java.io.Serializable
public class IOIteratorException
extends java.lang.Exception
Checked-Exception, die von den Methoden eines IOIterators ausgelöst werden
kann.
Anmerkung: Das normale Iterator-Interface deklariert keine Exceptions, so dass Implementierungen von Iterator auf RuntimeExceptions ausweichen müssen, wenn es nötig ist, einen Fehler zu signalisieren. Das erschwert die korrekte Fehlerbehandlung, weil der Aufrufer nicht gezwungen ist, RuntimeExceptions zu behandeln. Das IOIterator-Interface ermöglicht es dagegen, IOIteratorExceptions zu werfen, die behandelt werden müssen.
IOIterator dient als Ersatz für Iterator in Fällen, in denen der Iterator aus externen Datenquellen gespeist wird, wenn also z.B. IOExceptions zu erwarten sind.
Implementierungshinweise:
- In der Implementierung auftretende Exceptions, z.B. IOException, sollten in IOIteratorExceptions verpackt werden oder in eine davon abgeleitete Klasse.
- Die allgemeine IOIteratorException sollte abgeleitet werden, wenn man verschiedene Arten von Fehlern unterscheiden möchte. Die throws-Klausel der konkreten Implementierung kann entsprechend modifiziert werden: "throws IOIteratorExceptionA, IOIteratorExceptionB, ...". Ein catch-Block kann die jeweiligen Typen von IOIteratorExceptions dann getrennt behandeln.
- Falls überhaupt keine Exceptions benötigt werden, kann in der konkreten Implementierung die Klausel "throws IOIteratorException" weggelassen werden, so dass man nicht gezwungen ist, unnötige try-catch-Konstrukte zu erzeugen (was gelegentlich als Kritikpunkt an Checked-Exceptions angeführt wird, was aber, wie eben dargelegt, unbegründet ist...), womit sich IOIterator dann wie ein herkömmlicher Iterator benutzen lässt. Da er nicht von Iterator abgeleitet ist, muss allerdings auf die mit Java 5 eingeführten Neuerungen wie "for (i : Iterator)" verzichtet verwenden.
- Author:
- Stefan
- See Also:
- Serialized Form
-
Constructor Summary
Constructors Constructor Description IOIteratorException()
IOIteratorException(java.lang.String message)
IOIteratorException(java.lang.String message, java.lang.Throwable cause)
IOIteratorException(java.lang.Throwable cause)
-
Method Summary
-
Constructor Details
-
IOIteratorException
public IOIteratorException() -
IOIteratorException
public IOIteratorException(java.lang.String message) -
IOIteratorException
public IOIteratorException(java.lang.String message, java.lang.Throwable cause) -
IOIteratorException
public IOIteratorException(java.lang.Throwable cause)
-