Ist es empfehlenswert, eine unnötige Ausnahmebehandlung zu implementieren, falls ein anderer Teil des Codes nicht korrekt codiert ist?
Einfaches Beispiel
Eine einfache, damit ich nicht alle verliere :).
Angenommen, ich schreibe eine App, in der die Informationen einer Person (Name, Adresse usw.) angezeigt werden und die Daten aus einer Datenbank extrahiert werden. Angenommen, ich bin derjenige, der den UI-Teil codiert, und ein anderer schreibt den DB-Abfragecode.
Stellen Sie sich nun vor, dass die Spezifikationen Ihrer App besagen, dass die Person, die die Abfrage codiert, dies erledigen sollte, indem sie für das fehlende Feld "NA" zurückgibt, wenn die Informationen der Person unvollständig sind (sagen wir, der Name fehlt in der Datenbank).
Was ist, wenn die Abfrage schlecht codiert ist und diesen Fall nicht behandelt? Was passiert, wenn der Typ, der die Abfrage geschrieben hat, ein unvollständiges Ergebnis verarbeitet und wenn Sie versuchen, die Informationen anzuzeigen, stürzt alles ab, weil Ihr Code nicht für die Anzeige leerer Inhalte vorbereitet ist?
Dieses Beispiel ist sehr einfach. Ich glaube, die meisten von Ihnen werden sagen: "Es ist nicht Ihr Problem, Sie sind nicht für diesen Absturz verantwortlich." Aber es ist immer noch Ihr Teil des Codes, der abstürzt.
Ein anderes Beispiel
Nehmen wir an, ich bin derjenige, der die Anfrage schreibt. In den Spezifikationen wird nicht dasselbe wie oben angegeben, aber der Typ, der die Abfrage "Einfügen" schreibt, sollte sicherstellen, dass alle Felder ausgefüllt sind, wenn eine Person zur Datenbank hinzugefügt wird, um das Einfügen unvollständiger Informationen zu vermeiden. Sollte ich meine "Auswahl" -Abfrage schützen, um sicherzustellen, dass ich dem Benutzer vollständige Informationen gebe?
Die Fragen
Was ist, wenn in den Spezifikationen nicht ausdrücklich steht, dass "dieser Typ für die Bewältigung dieser Situation verantwortlich ist"? Was ist, wenn eine dritte Person eine andere Abfrage implementiert (ähnlich der ersten, jedoch in einer anderen Datenbank) und Ihren UI-Code verwendet, um sie anzuzeigen, diesen Fall jedoch in seinem Code nicht behandelt?
Sollte ich das Notwendige tun, um einen möglichen Absturz zu verhindern, auch wenn ich nicht derjenige bin, der den schlechten Fall behandeln soll?
Ich suche keine Antwort wie "(s) er ist derjenige, der für den Absturz verantwortlich ist", da ich hier keinen Konflikt löse, würde ich gerne wissen, ob ich meinen Code vor Situationen schützen soll, für die ich nicht verantwortlich bin zu handhaben? Hier würde ein einfaches "wenn leer, etwas tun" ausreichen.
Diese Frage befasst sich im Allgemeinen mit der redundanten Ausnahmebehandlung. Ich frage es, weil ich, wenn ich alleine an einem Projekt arbeite, 2-3 mal eine ähnliche Ausnahmebehandlung in aufeinanderfolgenden Funktionen programmieren kann, "nur für den Fall", dass ich etwas falsch gemacht habe und einen schlechten Fall durchkommen lasse.