Und noch ein Wort zu Exceptions: Ich mag sie nicht. Sie trennen Fehlerbehandlung von Normalbehandlung, und das ist durchaus nicht so wundervoll, wie einem oft eingeredet wird. Erst dadurch entstehen nämlich so supertolle Meldungen wie "Ein unbekannter Fehler ist aufgetreten!", der weder dem Benutzer noch dem Programmierer noch irgendwas hilfreiches sagt.
Grundsätzlich schliesst sich Gonzo da an, allerdings ist es manchmal recht intuitiv selbst Fehler zu werfen, diese sollten aber natürlich nicht "unbekannter Fehler", sondern eher "Fehler beim Export der Textdatei 'x.txt' in Zeile 42: Wert für die gerade importierte Variable 'x' nicht gefunden ('').".