Λοιπόν, φτιάξαμε την EmptyListException σε ένα ξεχωριστό αρχείο:
- Κώδικας: Επιλογή όλων
package dsalg.ergasia3.list;
import java.lang.Exception;
public class EmptyListException extends Exception {
}
Και έχουμε την κλάση MyList, που υλοποιεί διασυνδεδεμένη λίστα. Θέλουμε αντί για isempty, να πετάγεται exception όταν πάει να βγει κάτι από empty λίστα.
Παραθέτω τις τρεις συναρτήσεις που μάλλον είναι κρίσιμες:
- Κώδικας: Επιλογή όλων
public void add(int data) {
MyListNode node = new MyListNode();
node.data = data;
addNode(node);
}
public void addNode(MyListNode node) throws EmptyListException{
node.next = null;
if (head == null) {
// list is empty, create the first node
head = node;
} else {
MyListNode last = lastNode();
last.next = node;
}
}
protected MyListNode lastNode() throws EmptyListException{
MyListNode node = head;
if (node == null) {
// list empty
throw new EmptyListException();
// return null;
} else {
while (node.next != null)
{
node = node.next;
}
return node;
}
}
Αν έχω καταλάβει καλά, πρέπει μέσα στη MyList, κάπου να γίνεται throw το exception, και μέσα στη main μου να γίνεται το try/catch?
Τελευταία επεξεργασία από
cmavr8 και 04 Ιουν 2008, 14:13, έχει επεξεργασθεί 1 φορά/ες συνολικά