Exception
try {
.....
} catch (Exception e) {
throw new FirmennameException ("Objekt nicht gefunden");
}
Über diese Codestelle bin ich kürzlich gestossen, als ich einer Fehlermeldung im Logfile nachgegangen bin. Was daran so schlimm ist? Kleiner Hinweis: der Stacktrace im Logfile (der an einer anderen Stelle geschrieben wurde) hatte genau keine Aussagekraft.
Die hier geworfene Exception "FirmennameException" enthält keinerlei Hinweis über das Problem (wenn die aufrufende Routine nicht den Text auswerten soll). Hier wäre z.B. eine FirmennameObjectNotFound-Exception besser, so kann der Aufrufer erkennen welches Problem vorliegt. Weiters wird der Stacktrace der Exception (e) verworfen (deshalb konnte ich mit dem Log auch nichts anfangen). Dies ist an dieser Stelle besonders schlimm, da alle Exception's gecatched werden und so der eigentliche Auslöser unklar ist und bleibt. Wenn die möglichen Ursachen einer Exception nicht bekannt sind, empfiehlt es sich die Exception gar nicht erst zu fangen, da ohne genauer Ursache keine Behebung möglich ist.
