RaiseErrorText与CancelOperation冲突

来源:互联网 发布:vb post教程 编辑:程序博客网 时间:2024/05/01 06:45
今天遇到一个代码问题,RaiseErrorText与CancelOperation冲突:同事帮忙基本分析出了原因
现象:
1. 如果RaiseErrorText写在 CancelOperation之前,而且CancelOperation代码是在try 或者 catch中的,则RaiseErrorText可以正常弹出
2. 如果RaiseErrorText写在 CancelOperation之前,而且CancelOperation代码是在finally中的,则RaiseErrorText不能够正常弹出
3. 测试发现RaiseErrorText弹框操作是在finally之后进行的

RaiseErrorText 的描述
The RaiseErrorText method raises a scripting error message to the browser
When invoked, the RaiseErrorText method stops execution of the script. 
Therefore, CancelOperation is not required after RaiseErrorText.
CAUTION:  Be careful when using RaiseErrorText, because it cancels operations. 

CancelOperation的描述:
CancelOperation does not stop the execution of the code following it, 
but it does prevent the execution of any built-in code associated with this event. 
Applet_PreInvokeMethod must return CancelOperation when you are handling the event entirely through scripting and do not want the built-in code to execute.
However, if there is code in the same script following CancelOperation, that code runs regardless of the CancelOperation.