Argument Validation

Es ist gute Praxis alle Argumente zu validieren, bevor sie verwendet werden. Würde in diesem Beispiel das Argument nicht geprüft, dann würde eine DivideByZeroException geworfen werden (was zugegebenermaßen in diesem Beispiel auch nicht ganz sinn frei wäre – aber ich denke der Gedanke dahinter ist klar). Besonders bei Referenztypen ist es kritisch, da diese NULL sein können. Wird die Validierung vergessen, dann wird eine NullReferenceException geworfen. Deshalb gibt es in der Codeanalyse auch die Regel CA1062: Validate arguments of public methods. Würde eine Methode so aussehen: Würde man eine NullReferenceException bekommen, wenn das Objekt NULL wäre. Außerdem muss man aufpassen, … Continue reading Argument Validation

Error Handling Part 2: Eigene Ausnahmen werfen

Hier ist der zweite Parte der Serie über Fehlerbehandlung: Grundlagen der Fehlerbehandlung Eigene Ausnahamen werfen Guidelines nach David Abrahams Fehlerbehandlung auf Anwendungsebene Diesmal geht es darum wann und wie Ausnahmen generiert werden sollen. Generell gilt: Ausnahmen sollten immer dann geworfen werden, wenn die Anwendung oder das Objekt sonst in einen undefinierten Zustand gerät. Ausnahmen sollen kein Teil des normalen Programmflusses sein. Ein gutes Beispiel wie es NICHT geht liefert uns mal wieder SharePoint: Wenn ich auf ein Objekt in eine Auflistung zugreifen will, das nicht existiert werde ich mit einer ArgumentException oder eine SPException überrascht. Dies führt zu folgenden Funktionen, … Continue reading Error Handling Part 2: Eigene Ausnahmen werfen