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

    Methods inherited from class java.lang.Throwable

    addSuppressed, fillInStackTrace, getCause, getLocalizedMessage, getMessage, getStackTrace, getSuppressed, initCause, printStackTrace, printStackTrace, printStackTrace, setStackTrace, toString

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait