Nov 09

This post is also available in: Englisch

Im SCJP wird auch zwischen geeigneter und ungeeigneter/ nicht zweckmäßiger Nutzung unterschieden. In diesem Zusammenhang möchte ich die unangebrachte Nutzung von Assertions vorstellen:

  1. Nochmal zur Errinerung: Assertions sind Codeüberprüungen, die bei false zu einem Programabbruch führen. Natürlich können diese auch mittels try/catch/finally abgefangen werden, es ist aber nicht zweckmäßig.
  2. Assertions sollten nicht in mit public deklarierten Methoden verwendet werden, da nicht immer klar sein kann, woher diese Methode aufgerufen wird und welche Werte benötigt und genutzt werden. Aufrufe innerhalb von privaten Methoden sind jedoch überschaubar und deswegen zweckmäßig.
  3. Nochmal zur Erinnerung: Assertions können jederzeit ein- und ausgeschaltet werden. Deswegen sollten diese nicht für Werte, die dem Aufruf des Programmes mitgegeben wurden, benutzt werden. Hier sind andauernd geworfene Exceptions passender.
  4. Anweisungen/ Schleifen, die niemals erreicht werden sollen, sollten vorher, aber nicht in der Anweisung/ Schleife per Assertion überprüft werden
  5. Assertions sollten das Programm im selben Status verlassen, in dem es vor der Überprüfung war. Deswegen ist es wichtig, Seiteneffekte  zu vermeiden. Assertions sollten deswegen nie Änderungen/ Deklarationen von Variablen abfangen.

Un-Zweckmäßiger gebraucht bedeutet nicht un-legitime Programmierung. Alle genannten Beispiele compilieren einwandfrei und lassen sich ebenso ausführen.

Es bedeutet lediglich, dass Assertions nicht in einer der genannten Arten gebraucht werden sollten.

  • Print
  • del.icio.us
  • Facebook
  • Twitter
  • Google Bookmarks
  • Add to favorites
  • RSS
  • Blogosphere
  • email
  • PDF
  • Wikio
  • Technorati
  • Digg
  • DZone

Leave a Reply

preload preload preload
http://www.wikio.de Blog Top Liste - by TopBlogs.de Blogverzeichnis - Blog Verzeichnis bloggerei.de Bloggeramt.de Software
Webbhotell Top Blogs