INS-ecommerce

Java und DerWesten

Lange habe ich über das WAZ-Portal www.derwesten.de nichts geschrieben. Doch eine besonders schöne Fehlermeldung, die soeben wiederholt beim Aufruf von DerWesten kam, möchte ich natürlich nicht vorenthalten:
org.springframework.web.util.NestedServletException: Request processing failed; nested exception is java.lang.ClassCastException
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:411)
org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:354)
javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
org.riotfamily.common.web.filter.PluginChain.doFilter(PluginChain.java:60)
org.riotfamily.pages.page.support.FolderFilterPlugin.doFilter(FolderFilterPlugin.java:82)
org.riotfamily.common.web.filter.PluginChain.doFilter(PluginChain.java:57)
org.riotfamily.riot.security.AccessControlFilterPlugin.doFilter(AccessControlFilterPlugin.java:58)
org.riotfamily.common.web.filter.PluginChain.doFilter(PluginChain.java:57)
org.riotfamily.common.web.filter.PluginFilter.doFilterInternal(PluginFilter.java:123)
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:77)
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:72)
org.riotfamily.common.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:95)
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:77)


Ob diese Fehlermeldung wohl der typische Leser von DerWesten versteht?
Ich habe da so meine Zweifel.

Aber dennoch liebe ich solche Fehlermeldungen. Weil damit mal wieder ein Programmierer zeigt, dass er es in der objektorientierten Programmiersprache Java nicht geschafft hat, Fehlermeldungen halbwegs sauber abzufangen. In vielen Programmiersprachen ist vernünftige Fehlerbehandlung eine Kleinigkeit, in Java anscheinend systemimmanent unmöglich.



Geschrieben von af in am: Mittwoch, 13. Februar 2008
Permalink

Tags: , , , ,

Diesen Beitrag bei folgenden Diensten bookmarken:
del.icio.us - Digg it - Mister Wong - Technorati - Ruhr.com Suchmaschine

Kommentare
  • Martin Mittwoch, 13. Februar 2008, 22:37 Uhr
    Das liegt nicht an der Programmiersprache Java. Die bietet nämlich gute Funktionen zur Fehlerbehandlung. Solche Fehler liegen eindeutig an unfähigen oder schlampigen Programmierern.

  • Ralf Donnerstag, 14. Februar 2008, 02:37 Uhr
    Fehler passieren immer wieder. Ich glaube kaum das sich jemand davon frei sprechen kann.
    das spezielle Problem bei Java ist allerdings, dass man aus der Fehlermeldung klar erkennen kann welches Framework unter anderem verwendet wird. Schön wenn Open Source auch im Kommerziellen Umfeld eingesetzt wird. Blöd das dies aber die Sicherheit der Webseite immens gefährdet. Weiß doch jeder Hacker sofort wo er den Hebel ansetzen kann.

    Zumindest ist jetzt klar das DerWesten Riotfamily (www.riotfamily.org) als CMS einsetzt *g*
  • Sven Donnerstag, 14. Februar 2008, 11:48 Uhr
    Wie kommst Du denn auf diese Idee?
    Die Behauptung, in Java könne man keine Fehlerbehandlung durchführen ("in Java anscheinend systemimmanent unmöglich") ist natürlich totaler Unsinn.

    Exception-Handling war gerade der große Vorteil gegenüber anderen Sprachen, als Java popuär wurde.

  • Andreas Donnerstag, 14. Februar 2008, 12:43 Uhr
    @Ralf: Natürlich passieren immer Fehler. Aber über diese Java-typischen Fehlermeldungen stolpere ich relativ oft, nicht nur bei DerWesten.

    @Sven: Ich weiss. Java bietet eine im Prinzip wesentlich bessere Fehlerbehandlung als viele andere vergleichbare Sprachen. Nur: Warum wird das oft so wenig und so rudimentär genutzt? Ich sehe es so oft (sowohl bei Desktopanwendungen als auch Webanwendungen) dass irgendein Objekt in der Tiefe der Anwendung einen Fehler, eine Exception, erzeugt, die dann nicht abgefangen wird, sondern in der Art wie oben durch diverse Objekte bis zum Anwenderbildschirm hochwandert. Bei keiner anderen Programmiersprache kommt das meiner Erfahrung nach so häufig vor. Das meinte ich etwas provozierend mit "systemimmanent".
  • Ralf Donnerstag, 14. Februar 2008, 16:50 Uhr
    Wären z.B. bei PHP die Warnmeldungen nicht standardmäßig deaktiviert, würden so manche Webseiten den Besucher mit Warnings regelrecht zupflastern.
    Java ist natürlich etwas anspruchsvoller als z.B. PHP (z.B. streng typisiert), dementsprechend treten auch schneller (logische) Fehler auf. Andere Programmier-/Scriptsprachen sind einfach toleranter. Anstatt sich mit Fehlermeldungen zu melden, macht das Programm einfach etwas anderes als man sich gedacht hat. Vielleicht kommt es dir deshalb so vor als wenn Java fehleranfälliger wäre.

    Angeblich ist DerWesten ja noch in der Entwickelung. Demnach wird da wohl gerade am "lebenden" Objekt rumgedoktort. Da ist es halt einfacher die Fehler plan auszugeben anstatt sie abzufangen und im Labor dann die Ursache heraus zu bekommen warum es nicht so tut wie es tun soll.

    Also einfache Antwort auf die Frage warum die Exception nicht abgefangen werden: Kostet Geld und Zeit, was beides nicht vorhanden ist. Meine Vermutung.

Nächster Artikel: Dilemma am Valentinstag

Vorheriger Artikel: Checkliste: 12 Anforderungen an einen SEO Online-Shop