In einer Bibliothek, die ich schreibe, habe ich einige Methoden, die nur sehr selten und im laufenden Betrieb ausgeführt werden. Da ich ein Fahrzeug modelliere, ist eine der (außergewöhnlichen) Methoden ein gerissener Motor, was sehr selten wäre. Soll ich bei dieser Methode eine Ausnahme auslösen? Dies wird verhindern, dass ein Fahrzeug verwendbar ist.Wo in diesem Beispiel am besten die Ausnahme zu werfen?
Ich lese das .NET Design Framework Richtlinien Buch und es besagt, dass eine Ausnahme sollte nur auftreten, wenn eine Methode die Ausführung nicht abgeschlossen werden kann. Die eigentliche Engine Cracked-Methode wird immer abgeschlossen, aber wenn eine meiner Methoden, wie Start-Engine (diese Methode speichert die Menge der Motor startet als Mittel zur Anspannung der Maschine), wird aufgerufen und führt zu einem Aufruf zu geknackt Motor, wo (wenn irgendwo) sollte ich eine Ausnahme werfen?
Könnten Sie bitte das Feedback-Mechanismus-Bit erklären (Was ist es)? – dotnetdev
Es hängt wirklich vom Rest deines Codes ab, also wäre es schwer zu sagen - aber ich denke, dein System hat bereits ein Gefühl für den Zustand, mit bedingter Logik verbunden? EngineState.Cracked könnte dort passen, und Sie könnten Engine.Start wenn! Engine.Cracked (offensichtlich Pseudocode dort). –
Ich sehe was du meinst. Ich kann diesem Ansatz folgen, aber eine gebrochene Ausnahme kann immer noch passieren, wenn das Auto in Bewegung ist, an welcher Stelle ich die Ausnahme werfen sollte (weil es das System am Funktionieren hindert). – dotnetdev