Hey zusammen
Häufig ergeben sich die Paramter einer Blueprit Node zur Laufzeit, das beduetet eine Prüfung zur Compile time ist häufig gar nicht möglich.
Der übliche Ansatz sind Asserts, wenn durch null dividert wird, wird bei check die Ausführung unterbrochen und in der IDE genau die Zeile geöffnet, wo das passiert ist.
Ansonsten hast du den Stack auch zur Verfügung, mit der Nachricht vom Ensure und der Zeile wo es passiert ist.
LogOutputDevice: Error: === Handled ensure: ===
LogOutputDevice: Error: Ensure condition failed: B != 0 [File:.../Private/ActorComponentB.cpp] [Line: 37]
LogOutputDevice: Error: Division by Zero
LogOutputDevice: Error: Stack:
Der Ansatz ist es diese ungültigen Zustände zu finden. Also bei einer Division geht man davon aus, dass der Programmierer da nicht durch null teilt. Falls doch wird die ausführung unterbrochen, und der fehlerhafte Code angzeigt und das Problem kann behoben werden. Deine Log message könnte halt übersehen werden, ein check nicht.
Du kannst try - catch blocks nutzen. Die Engine nutzt diese kaum. In diesem Beispiel sehe ich da auch kein Vorteil von Exception, weil es halt ein Programmierfehler ist.
Gruss