Mach es doch so, dass du wenn Operationen auf dem Graph statt finden zunächst auf Validität prüfst, und ggf. eine
Exception der Art "OperationOnInvalidGraphException" wirfst. Operationen sollten ja eh in Methoden der Graph-Klasse gekapselt sein, so dass du da einfach die Abfrage reinwirfst.
Die Prüfungsfunktion selbst würde ich dann zusätzlich sichtbar machen, so dass der Benutzer der Klasse auch ohne OP auszuführen prüfen kann, und dann gibst du entweder ein Enum bzw. Set mit den Invaliditätskriterien zurück, oder du splittest das ganze in N Prüfungsmethoden, je eine pro Kriterium die dann nen bool zurückgeben.
Zudem könntest du deinen Graphoperationen noch einen (optionalen, default true) Parameter spendieren, der die Prüfung auf Wunsch deaktiviert. Dass das dann auf eigene Gefahr des Benutzers der Klasse geht sollte dann noch wo erwähnt werden
(evtl. sogar per Compilerwarnung).
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)