Exceptions in Deque-Implementierung
-
Hallo,
wir müssen für die Uni, Informatik B, Java-Einführung eine Deque-Implementierung basierend auf einem dynamischen Array schreiben. Soweit kein Problem. Komplett mit Ausnahmen. Soweit kein Problem.
Nun hat uns die Tutorin eine Beispielimplementierung eines Stacks geschickt, um das Prinzip zu demonstrieren. Bei dieser Implementierung ist eine Ausnahme-Klasse definiert: 'StackEmptyException', welche von 'Exception' erbt und ansonsten leer ist.
Die Tutorin hat den Kommentar "Die Exceptions sollten in eurem Programm ein bißchen ausführlicher sein" darunter gesetzt.
Frage: Wieso? Ich hatte für meine Deque-Implementierung eigentlich genau das vorgesehen, also eine ansonsten leere Klasse 'DequeEmptyException'. Was für Zusatzinformationen oder zusätzliche Exception-Klassen könnte man denn da noch brauchen?
Ach ja: Die Implementierung soll prinzipiell folgendes Interface erfüllen:
public interface IDeque { void pushHead(Object e); void pushTail(Object e); Object popHead(); Object popTail(); Object head(); Object tail(); boolean isEmpty(); int size(); }
-
Naja, du könnstest zum Beispiel DequeEmptyException erstmal von DequeException ableiten und noch weitere Typen von der DequeException ableiten. Außerdem würde ich sagen, dass DequeException dann von RuntimeException erben soll, damit man sie nicht in die throws-Klausel schreiben muss. Und letztendlich natürlich nicht einfach den Standard-Basisklassenkonstruktor aufrufen, sondern einen erklärenden Text mitschicken.
-
Optimizer schrieb:
Naja, du könnstest zum Beispiel DequeEmptyException erstmal von DequeException ableiten und noch weitere Typen von der DequeException ableiten.
Oh, die Idee ist gut, das werde ich machen.
Außerdem würde ich sagen, dass DequeException dann von RuntimeException erben soll, damit man sie nicht in die throws-Klausel schreiben muss. Und letztendlich natürlich nicht einfach den Standard-Basisklassenkonstruktor aufrufen, sondern einen erklärenden Text mitschicken.
Auch hier vielen Dank, das hatte ich aber beides bereits auch schon genauso gemacht.