karlsve's blog

Whatever I write about. It is what I think!

Fehlerbehandlung ist doch quatsch


Da stöbert man durch die aktuellen Artikel auf Nachrichten-Seiten und schwupps wundert man sich über die Fehler in der Fehlerbehandlung die viele Programmierer gerne machen.

Auch wenn ich grundsätzlich natürlich verstehen kann warum man die Fehlerausgabe, in diesem Beispiel in PHP, aktiviert so ist doch immer die Frage warum auf dem Produktivsystem und nicht in einem “identischen” Testsystem (Also einem Testsystem mit der gleichen Version und fast identischen Konfiguration).

Denn allein dadurch lassen sich schon solche Probleme wie in dem verlinkten Artikel beschrieben sicher umgehen.

Aber noch viel schlimmer als die von dem Autor des Artikels begangenen Fehler finde ich persönlich die Empfehlungen und Anmerkungen in den Kommentaren. Das geht von der Bezeichnung des Autors als “Unwissenden” bis hin zum “Bashing” der gewählten Programmiersprache.

Dabei ist die Lösung für dieses Problem doch ganz simpel.

Wenn ich mit der Programmierung einer neuen Software anfange, dann gehört zu den wesentlichen Grundsatzüberlegungen doch sowieso die Frage:

Wie gehe ich mit Fehlern um?

Im Rahmen dieser Frage fange ich regelmäßig meine Projekte damit an eine für den expliziten Fall angemessene Fehlerbehandlung zu basteln.

Allgemein

Jeder Programmierer fängt irgendwann einmal klein an. Lernen ist im Leben das A und O. In der Programmierung lernt man häufig durch Fehler, aber eben auch in den meisten anderen Lebenslagen. So heißt doch der bekannte Spruch: “Aus Fehlern lernt man.”

Aber wie finden wir die Fehler in der Programmierung und vor allem wann finden wir diese?

Beispiel PHP

Da in dem oben erwähnten Artikel explizit von PHP die Rede ist und auch die Kommentare darauf abzielen, werde ich mich vorerst auch nur mit dieser Sprache auseinandersetzen.

Ich selbst habe damals mit PHP/HTML/CSS/JavaScript angefangen, vor allem da man schnell sichtbare Ergebnisse erhält. (Was vermutlich ganz nebenbei auch der Grund für das faible von vielen Neulingen für PHP sein könnte)

Meine ersten Webseiten hatten damals natürlich auch viele Fehler und auch heute mache ich durchaus nicht selten einen Fehler und so manchen von diesen habe ich eventuell auch bis heute nicht gefunden. (Wenn man einen Fehler nicht findet, existiert er dann überhaupt?)

Aber was machen wir mit Fehlern die man finden kann und wo lassen wir diese Ausgeben?

In PHP gibt es dafür eine relativ gelungene Lösung auch ohne die php.ini anzupassen so dass alle Fehler in den Error-Log geschrieben werden.  Denn diese Error-Log-Lösung ist bei den meisten Webhostern leider nicht so einfach, man hat häufig keinen Zugriff auf die Logs und wenn dann häufig nur auf Anfrage. Aber bevor ich mich über die Error-Log-Politik der Webhoster auslasse liefere ich doch lieber eine Lösung die unabhängig vom Hoster ist.

Das Stichwort in PHP lautet set_error_handler, denn diese kleine aber feine Funktion ermöglicht es dem Programmierer seine eigene Fehlerbehandlung für die meisten Laufzeitfehler zu entwickeln. Somit ist es möglich, selbst wenn kein Zugriff auf die PHP-Error-Logs besteht, eigene Error-Logs in Produktivsystemen zu erstellen, aber noch viel wichtiger lässt sich auf diese Weise in der Entwicklung auch die Ausgabe der Fehler optimieren.

Für eine Entwicklungsumgebung freut man sich vermutlich wenn die Fehler gesammelt an einer Stelle in dem genutzten Template erscheint, in einem Produktivsystem ist es wohl wünschenswerter in einer Datei. (Die gleiche Idee steckt übrigens hinter display_errors aber leider nicht so schön einfach anpassbar)

Auch das Übermitteln dieser Fehler an den Entwickler lässt sich damit sehr einfach realisieren. (Sofern man kein Mail-Limit durch den Hoster hat, oder der Entwickler eine eigene Error-Reporting-Möglichkeit, z.B. mittels Webseite, implementiert hat)

Außerdem lässt sich dies mittels einer einfachen Konfiguration (Dateibasiert, Datenbankbasiert, wie auch immer man Konfigurationen speichern mag) nach belieben einstellen, denn der Entwickler ist ab diesem Zeitpunkt Herr der Ausgabe.

Ist es nicht das was eigentlich wünschenswert ist? Der Entwickler der Software bestimmt wie die Fehler an wen übermittelt werden. Erinnert mich stark an die Variante die in vielen anderen Programmiersprachen ebenfalls genutzt wird. Ist PHP doch gar nicht der große böse Buhmann was das Debugging angeht?

Fazit

Ich persönlich bin der Ansicht, dass in keinem Fall die Programmiersprache dafür herhalten muss wenn die Programmierer sich einfach nicht genug auskennen.

Mit dieser Aussage spreche ich sowohl die Programmierer an die Hinweise übersehen und/oder ignorieren, als auch diejenigen die eine Programmiersprache schlechter reden als sie eigentlich ist. PHP kann viel und macht genau das was der Programmierer verlangt, wenn man sich damit auseinandersetzt. Aber das gleiche gilt auch für Java, C++, C# und jegliche anderen Programmiersprachen.

Auch wenn in vielen Programmiersprachen der Compiler schon die ersten Fehler findet, so ist es doch meist dem Entwickler überlassen wie er Laufzeitfehler behandelt.

PS

Falls jemand Interesse haben sollte, in einem meiner Projekte habe ich eine simple Variante der Fehlerbehandlung in PHP implementiert mittels set_error_handler. Zu finden ist diese online auf Github.


74 responses to “Fehlerbehandlung ist doch quatsch”

  1. hdfilmcehennemi Avatar

    Fullhdfilmizlesene ile en yeni vizyon filmler Full HD ve ücretsiz film sizlerle. Orijinal film arşivimizle en kaliteli film izle fırsatı sunuyoruz. Cletus Vendetti

  2. bitcoin Avatar

    Filmizlesene ile hızlı film izleme fırsatını yakala, en yeni ve iyi filmleri Full HD 1080p kalitesiyle online ve bedava izle. Errol Faigle

  3. erotik Avatar

    WP Rentals can benefit both hosts and travelers. Hosts get to meet people from around the world while making a little extra money, and travelers can often stay for less than the cost of a hotel room. In addition, many travelers enjoy accommodations that offer a different experience from standard hotels. Blair Guzek

  4. ZlIwXYWBL Avatar

    crzZgmwlEMTVeq

  5. QbhaLqSRp Avatar

    vijKmoEHyqCdAte

  6. gaziosmanpaşa elektrikçi Avatar

    gaziosmanpaşa elektrikçi Google SEO sayesinde müşteri memnuniyetimiz arttı. http://royalelektrik.com/

  7. tıkanıklık ve su kaçak tespiti Avatar

    tıkanıklık ve su kaçak tespiti Kadıköy su kaçağı tespiti: Kadıköy’deki su sızıntılarında noktasal tespit için yanınızdayız. https://richonline.club/ustaelektrikci

  8. Gümüşpala su kaçak tespiti Avatar

    Gümüşpala su kaçak tespiti Banyodaki su kaçağını tespit etmek için gelen ekip çok titizdi. Fayansları koruyarak çalıştılar. Hülya R. https://afriprime.net/ustaelektrikci

  9. Karlıktepe su kaçak tespiti Avatar

    Karlıktepe su kaçak tespiti Kısa Sürede Tamir: Kaçak tespiti sonrasında tamir işlemi çok kısa sürdü. Şimdi tesisatımız sorunsuz çalışıyor. http://www.jlifenj.com/uskudar-tesisatci-kacak-tespiti/

  10. Addison3460 Avatar
  11. film makinesi Avatar

    I definitely wanted to send a quick comment to thank you for those precious tactics you are giving out on this website. My time intensive internet investigation has at the end been paid with good content to go over with my company. I would tell you that we readers are quite endowed to exist in a fine website with very many perfect individuals with good ideas. I feel really blessed to have discovered your entire webpage and look forward to many more fabulous minutes reading here. Thank you once more for everything. Odell Mannis

  12. Halle454 Avatar
    Halle454

    ST – Луи Луи скачать и слушать онлайн https://shorturl.fm/h6Fnv

  13. Layla4013 Avatar
    Layla4013

    Gayazov$ Brother$ – До Встречи На Танцполе скачать песню бесплатно в mp3 и слушать онлайн https://shorturl.fm/hLl1K

  14. Michelle3372 Avatar
    Michelle3372

    TRUEтень – Клетка скачать mp3 и слушать онлайн https://shorturl.fm/ad607

  15. Levi428 Avatar
    Levi428

    Фактор 2 – Королева скачать песню и слушать бесплатно https://shorturl.fm/P67Fe

  16. Kristina2760 Avatar
    Kristina2760

    Дюна – На Бали скачать mp3 и слушать онлайн бесплатно https://shorturl.fm/y2m1q

  17. Pat4793 Avatar
    Pat4793

    Anivar – Падает Звезда скачать и слушать онлайн https://shorturl.fm/yc5oh

  18. Lillian2661 Avatar
    Lillian2661

    VIVATS – Оставь меня скачать бесплатно mp3 и слушать онлайн https://shorturl.fm/nbgDW

  19. Cristian1324 Avatar
    Cristian1324

    Lovv66 feat. Платина – Валына скачать песню и слушать бесплатно https://shorturl.fm/u2T2B

  20. Alexandra4059 Avatar
    Alexandra4059

    Brandon Stone – Папа скачать mp3 и слушать бесплатно https://shorturl.fm/9vcLs

  21. Aaliyah2907 Avatar
    Aaliyah2907

    Arik – Каменные Цветы скачать песню на телефон и слушать бесплатно https://shorturl.fm/fZ4jv

  22. Donald4126 Avatar
    Donald4126

    Муслим Магомаев – С добрым утром и с хорошим днём скачать mp3 и слушать бесплатно https://shorturl.fm/j8tBf

  23. Dallas2808 Avatar
    Dallas2808

    Shoo – Около скачать песню в mp3 и слушать онлайн https://shorturl.fm/82vM7

  24. Amy2205 Avatar
    Amy2205

    Om – Минимум скачать песню бесплатно в mp3 и слушать онлайн https://shorturl.fm/G4yln

  25. London3568 Avatar
    London3568

    5sta Family, Ps Project, Roman Max x Max Flame, Dacks – Зачем (Pitchugin Mashup) скачать и слушать песню бесплатно https://shorturl.fm/4nJqc

  26. Alex3269 Avatar
    Alex3269

    Андрей Шпехт – Эта Ночь скачать песню и слушать бесплатно https://shorturl.fm/NxoA5

  27. Ginger3102 Avatar
    Ginger3102

    Xcho – Вороны скачать и слушать песню бесплатно https://shorturl.fm/Trmzh

  28. Scarlett3407 Avatar
    Scarlett3407

    Линда – Мало огня (Ayur Tsyrenov Extended Remix) скачать бесплатно mp3 и слушать онлайн https://shorturl.fm/vwIph

  29. Jeremy1263 Avatar
    Jeremy1263

    Jakonda & Nejtrino – Мама, Прости 2.0 скачать mp3 и слушать онлайн бесплатно https://shorturl.fm/GlRjG

  30. Flynn849 Avatar
    Flynn849

    Reckless – Сам Не Свой скачать и слушать онлайн https://shorturl.fm/8yYKi

  31. Lynda4018 Avatar
    Lynda4018

    Ева Власова – Танцуй Вопреки скачать песню и слушать бесплатно https://shorturl.fm/kLXN9

  32. Alexandria1925 Avatar
    Alexandria1925

    TRUEтень – Поцарапано скачать песню на телефон и слушать бесплатно https://shorturl.fm/OXChH

  33. Shawn1498 Avatar
    Shawn1498

    Mysadeyes – Не Хочу Тебя Терять скачать и слушать mp3 https://shorturl.fm/ox0Z4

  34. Lila1158 Avatar
    Lila1158

    Gercek – Глупый, Молодой скачать песню и слушать онлайн https://shorturl.fm/AY3uX

  35. Angelica818 Avatar
    Angelica818

    Tanya Li Feat. & Tim – Крижана (Sokolov Remix) скачать бесплатно mp3 и слушать онлайн https://shorturl.fm/QMEdB

Leave a Reply

Your email address will not be published. Required fields are marked *