{"id":298,"date":"2011-11-12T09:54:09","date_gmt":"2011-11-12T08:54:09","guid":{"rendered":"http:\/\/www.steffen-liersch.de\/content\/de\/?p=298"},"modified":"2025-03-02T11:30:46","modified_gmt":"2025-03-02T10:30:46","slug":"general-exception-handling-in-libraries","status":"publish","type":"post","link":"https:\/\/www.steffen-liersch.de\/content\/de\/2011\/11\/general-exception-handling-in-libraries\/","title":{"rendered":"Generelle Ausnahmenbehandlung in Bibliotheken"},"content":{"rendered":"<p>Die generelle Behandlung von Ausnahmen in Bibliotheken steigert nicht etwa die Qualit\u00e4t einer Bibliothek, sondern gef\u00e4hrdet sie eher. Diese auf den ersten Blick gewagte These kann tats\u00e4chlich auch begr\u00fcndet werden.<!--more--><\/p>\n<p>Die ausschlie\u00dfliche Behandlung von erwarteten Ausnahmen f\u00fchrt dazu, dass keine Behandlung von unerwarteten Ausnahmen erfolgt. Unerwarteten Situationen wird somit auch keine ungeeignete Behandlung zuteil. Die Weitergabe einer unerwarteten Ausnahme an die n\u00e4chste ausnahmenbehandelnde Instanz erh\u00f6ht die Transparenz und verbessert die Fehlersuche.<\/p>\n<h2>Fehler durch die generelle Ausnahmenbehandlung<\/h2>\n<p>Der Versuch, eine tempor\u00e4re Datei anzulegen, ohne eine bereits existierende Datei zu \u00fcberschreiben, erfordert auf jeden Fall eine Ausnahmenbehandlung. Denn auch wenn vor der Erzeugung gepr\u00fcft wurde, ob keine gleichnamige Datei existiert, kann im Moment der Erzeugung dennoch eine gleichnamige Datei existieren, wenn diese zwischenzeitlich zwischen beiden Operationen erstellt wurde.<\/p>\n<p>Deshalb ist es notwendig, mehrere Versuche zu unternehmen, um eine tempor\u00e4re Datei anzulegen, ohne eine bestehende Datei zu \u00fcberschreiben. Dies funktioniert sehr gut mit Hilfe einer Schleife. Der Schleifenz\u00e4hler kann dabei in den Dateinamen eingebaut werden. Behandelt man nun innerhalb der Schleife alle m\u00f6glichen Ausnahmen (durch blo\u00dfes Ignorieren), ist dies f\u00fcr die folgenden F\u00e4lle nicht korrekt:<\/p>\n<ul>\n<li>Die \u00fcbergebenen Argumente sind nicht korrekt.<\/li>\n<li>Die Pfadangabe ist zu lang.<\/li>\n<li>Das Verzeichnis existiert nicht.<\/li>\n<li>Es ist keine Schreibberechtigung f\u00fcr das Verzeichnis vorhanden.<\/li>\n<\/ul>\n<p>Im schlimmsten Fall resultiert diese falsche, generelle Behandlung von Ausnahmen in einer prozessorauslastenden Endlosschleife.<\/p>\n<h2>Wann ist die generelle Ausnahmenbehandlung erlaubt?<\/h2>\n<p>Die generelle Ausnahmenbehandlung ist dann erlaubt, wenn es darum geht, Ausnahmen in Form einer Fehlermeldung zu behandeln. Dies ist meist in Anwendungen der Fall. Befindet sich die Implementierung von Benutzeroberfl\u00e4chen in einer Bibliothek, kann die generelle Ausnahmenbehandlung auch in der Bibliothek erfolgen.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Die generelle Behandlung von Ausnahmen in Bibliotheken steigert nicht etwa die Qualit\u00e4t einer Bibliothek, sondern gef\u00e4hrdet sie eher. Diese auf den ersten Blick gewagte These kann tats\u00e4chlich auch begr\u00fcndet werden.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[5],"tags":[21],"class_list":["post-298","post","type-post","status-publish","format-standard","hentry","category-net","tag-net"],"_links":{"self":[{"href":"https:\/\/www.steffen-liersch.de\/content\/de\/wp-json\/wp\/v2\/posts\/298","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.steffen-liersch.de\/content\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.steffen-liersch.de\/content\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.steffen-liersch.de\/content\/de\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.steffen-liersch.de\/content\/de\/wp-json\/wp\/v2\/comments?post=298"}],"version-history":[{"count":7,"href":"https:\/\/www.steffen-liersch.de\/content\/de\/wp-json\/wp\/v2\/posts\/298\/revisions"}],"predecessor-version":[{"id":464,"href":"https:\/\/www.steffen-liersch.de\/content\/de\/wp-json\/wp\/v2\/posts\/298\/revisions\/464"}],"wp:attachment":[{"href":"https:\/\/www.steffen-liersch.de\/content\/de\/wp-json\/wp\/v2\/media?parent=298"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.steffen-liersch.de\/content\/de\/wp-json\/wp\/v2\/categories?post=298"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.steffen-liersch.de\/content\/de\/wp-json\/wp\/v2\/tags?post=298"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}