Perhaps this help page on control events can help you a bit in designing your app.
The easiest solution for numeric controls is to set a range either in the UIR editor or programmatically (SetCtrlAttribute with ATTR_MIN_VALUE and ATTR_MAX_VALUE attributes) and set it in coerce mode, so that if the user enters a value out of range, it is clipped to the nearest limit and a EVENT_VAL_COERCED is sent to the control callback.
Alternatively you can set the control in Notify mode so that an alert sign is visible and use ValidatePanel to check if all controls are in-range or not.