Thanks for your help indeed.
Alter: I had a look into your accounting application and you are right. Using Alter followed by Return seems to stop going further. But I am concerned that in the case which more than one functions are invoked, while the fist might be stopped, the others will still be called after the first. Is this the only way to go for now?
Throw: I notice that using throw without try/catch does stop code execution. But I am cautious and try not to show the debug window to end users. In the past, I had some painful experiences even if the error message is short and sweet. That debug window is nice for developers but is likely to drive the users mad at me 🙂 .
Thanks for the tips regarding database rollbak. I will keep that in mind.