Stopping execution when data are wrong...

I use a ValueChangeListener in order to validate a field content.
At the end of my controls, if the value is wrong I issue an InvalidValueException.
If I don’t catch the IVE I see a messge box indicating the error and, at sam time the tip containing the same error : this is not the wanted behaviuor.
On the other side if I catch the IVE the message is shown in the correct way but operations are not stopped.
This is a problem mainly when the validation occurs after a button click : in that case I don’t want to execute the code connected to the button because of the validation failed.
Is there any way to solve the issue ?