Leerer Block/Leerer Konstruktor
🚧 | Diese Seite befindet sich in Bearbeitung | 🚧 |
🤓 | Diese Seite ist eine Bewertungsrichtlinie, die ab Blatt 1 annotiert und ab Blatt 2 abgezogen wird. | 🤓 |
Beschreibung
Als leeren Block bezeichnen wir Blöcke innerhalb von Schleifen, Statements oder Konstruktoren, die nicht kommentiert oder anderweitig dokumentiert wurden. Diese leeren Blöcke stellen die lesende Person erst mal vor ein Rätsel, warum dieser Block denn leer ist und ob dort nicht eigentlich Funktionalität fehlt. Um das zu vermeiden, ist es wichtig, diese Blöcke zu vermeiden. Kann man diese Blöcke nicht vermeiden, ist es guter (und vorausgesetzter Stil) diesen mit einer Begründung in einem sinnvollen Kommentar, in genau diesem Block, zu dokumentieren.
Negativbeispiel
public class Matrix {
public void printMatrixSize(int size) {
if (size == 0) {
} else {
System.out.println("Matrix is of size " + (size * size))
}
}
}
Hier ist der leere Block des if-Statements ein Problem. Warum passiert nichts für size 0? Warum machen wir dafür keine Ausgabe?
public class Table {
private rows = 0;
public Table() {
}
}
Der leere Konstruktor für Table ist unnötig, da wir von der Java-API einen default-Konstruktor bereitgestellt bekommen. Dieser existiert implizit, wenn kein anderer Konstruktor anwesend ist.
Positivbeispiel
try {
file.close();
} catch (IOException e) {
// File cannot be closed, but this is non-critical,
// as the program can still continue running normally here.
// No further handling required.
}
Hier ist korrekt dokumentiert, warum der Catch-Block leer bleibt.