Manchmal ist ein Null-Objekt sinnvoll, manchmal nicht. Ich hatte neulich den Fall, das eine Bitmap skaliert werden sollte, also:
Function ScaleBmp (aBitmap : TBitmap; Width : Integer) : TBitmap;
Was soll zurückkommen, wenn aBitmap=null? Fail-Fast sagt:
Exception! Ich habe gesagt: Na ja... entweder eine leere Bitmap (h=b=0)oder Nil. Wenn ich letzteres verwende, muss ich aber mein gesamtes Framework auf den Sonderfall 'nil' umstellen, ginge, wäre aber blöd.
Korrekt. Ich als .NET'ler überprüfe auch üblicherweise erstmal meine Argumente. In dem Fall würde ich auch gleich eine ArgumentNullException werfen. Wenn die Funktion nur in einem bestimmten Bereich skalieren kann, und width ausserhalb der validen Werte liegt, gibts auch gleiche ne ArgumentOutOfRangeException (oder eine mehr generische ArgumentException mit entsprechendem Fehlertext).
Sowas (= konkret eine Fehlbedienung) sollte maximal beim Entwickeln passieren und nicht im normalen Programmablauf. Und wenn doch, ist woanders was schief gelaufen (Ausnahmesituation)
Da sind Exceptions natürlich das Mittel der Wahl.