Moin!
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 ('').".
Das Problem mit Exceptions ist: Man kann sie sehr leicht werfen, aber nur schwierig wieder einfangen, würde ich meinen.
Ist ja auch ganz einfach: Eine Klasse, für I/O mit irgendwas zuständig, stellt fest, dass der I/O-Partner nicht bereit ist. Also: Exception werfen, und die Kontrolle an die aufrufende Instanz zurückgeben, die wird schon für die Fehlerbehandlung zuständig sein und irgendwas machen.
Aber der faule Programmierer hat nicht dran gedacht, dass der Aufruf der I/O-Routine mehr als einen Ausgang haben kann, nämlich zusätzlich zur normalen Rückkehr auch noch die Exceptions, die geworfen werden können. Und schon nimmt das Unglück seinen Lauf.
Google findet 1,7 Millionen Dokumente auf der Suche nach "exceptions considered harmful", z.B. dieses hier: http://silkandspinach.net/2005/06/14/exceptions-considered-harmful/, oder dieses: http://www.joelonsoftware.com/items/2003/10/13.html. Die treffen meine Meinung zu Exceptions ganz gut.
- Sven Rautenberg
"Love your nation - respect the others."