Hi,
was ist schöner/eleganter, wenn eine Rückgabe nicht sinnvoll ist:
1. throw Exception oder
2. null zurückgeben?
Also konkret möchte ich den Schnittpunkt einer Strecke mit einer anderen Strecke berechnen lassen. Sollten die Strecken parallel oder identisch sein, löse ich schon mal ne Exception aus, da der Benutzer vorher mit isParallel() oder equals() diese Fälle hätte prüfen können. Sollten die Geraden, dessen Teilmenge die Strecken sind, sich allerdings schneiden, kann es ja immer noch sein, dass eine oder beide Strecken um den Schnittpunkt herum nicht definiert ist, d.h. der Schnittpunkt nicht zwischen den definierenden Punkten liegt. Sollte ich hier auch eine Exception auslösen, oder einfach null als Schnittpunkt zurückgeben?
Bei Exceptions wird ja immer aufwendig der Stack gezogen, also spricht die Performance für null. null ist allerdings eine im Grunde nichtssagende Antwort auf den Methodenaufruf. In diesem Fall könnte man ja noch argumentieren, dass null nur zurückgegeben wird, wenn sich zwar die Geraden, aber nicht die Strecken schneiden.
was ist schöner/eleganter, wenn eine Rückgabe nicht sinnvoll ist:
1. throw Exception oder
2. null zurückgeben?
Also konkret möchte ich den Schnittpunkt einer Strecke mit einer anderen Strecke berechnen lassen. Sollten die Strecken parallel oder identisch sein, löse ich schon mal ne Exception aus, da der Benutzer vorher mit isParallel() oder equals() diese Fälle hätte prüfen können. Sollten die Geraden, dessen Teilmenge die Strecken sind, sich allerdings schneiden, kann es ja immer noch sein, dass eine oder beide Strecken um den Schnittpunkt herum nicht definiert ist, d.h. der Schnittpunkt nicht zwischen den definierenden Punkten liegt. Sollte ich hier auch eine Exception auslösen, oder einfach null als Schnittpunkt zurückgeben?
Bei Exceptions wird ja immer aufwendig der Stack gezogen, also spricht die Performance für null. null ist allerdings eine im Grunde nichtssagende Antwort auf den Methodenaufruf. In diesem Fall könnte man ja noch argumentieren, dass null nur zurückgegeben wird, wenn sich zwar die Geraden, aber nicht die Strecken schneiden.