站内搜索
广告
Remote Scripting进阶教程---检查错误
作者:    来源:    点击:    日期:2007-5-5 23:34:02   
检查错误
当您在服务器脚本中用 remote scripting 调用方法时,可能会遇到多种错误,包括语法错误和运行时间错误,以及调用 remote scripting 方法时的错误。remote scripting 调用机制向您提供了获知调用过程中所出现错误信息的途径。

错误处理程序根据您是进行同步或者异步调用稍微有些不一样。如果您在进行同步调用时导致错误,那么 remote scripting 机制将在浏览器中显示一条错误消息。错误文字来自于调用对象的 message 属性。有关详细信息,请参阅如下的“Remote Scripting 调用故障诊断”。

不过,如果您产生导致一个错误的异步调用,那么您可以通过指定一个错误回调函数捕获该错误,该回调函数的调用在很大程度上和普通回调函数有相似之处。

捕获异步调用中产生的错误

您可以指定自己异步 remote scripting 调用中的错误回调函数名。由于您必须传递该回调函数的函数指针,因此对于异步方法调用来说,您必须使用 JavaScript。如果您已经创建了对服务器页的对象引用,那么可以用第一个语法示例。否则可以用第二个语法示例。
callObject = ASPObject.methodName(p1, p2[,...],
   callbackFunction, errorCallbackFunction, context)

callobject = RSExecute(url, methodName, p1, p2[,...],
   callbackFunction, errorCallbackFunction, context)

有关产生对服务器方法异步调用的详细信息,请参阅异步调用 Remote Scripting 方法。

不管您进行同步还是异步调用,都可以得到关于错误条件的信息,方法是测试调用对象的属性。如果用户指定了错误回调函数,那么调用对象就被作为参数传递,就象普通回调函数参数传递一样。特别是下面的属性提供了错误信息:

status 如果远程调用失败则包含 -1。


data 包含服务器返回的 XML 格式的粗信息。这是调试的最好信息源,因为它包含了错误消息的完整文本以及服务器生成的其他消息。


message 包含 remote scripting 代理过程生成的错误消息信息(如果有的话)。 message 中的错误消息不必要和 data 属性中的一样。例如,如果 ASP 页包含一条语法错误,那么关于该错误的详细消息将出现在 data 属性中,但消息属性将只包含这样一条消息──它指示用户不能调用 ASP 页上的方法。
下面的脚本示例了客户脚本中的一个错误回调函数。第一个脚本产生一个 remote scripting 调用,并指明错误回调函数。第二个脚本是错误回调函数本身。错误回调函数并不显式地对调用对象 status 属性值进行测试,因为该函数仅在调用失败时才被调用。

<SCRIPT LANGUAGE="JavaScript" for="btnSquare" event="onclick">
    rsMath = RSGetASPObject("rsadd.asp");
    number1 = txt1.value;
    context = "squaring";
    co = rsMath.square(number1,showResults,showErrors,context);

function showErrors(co){
    // 转储粗数据
    msg = "The raw data returned by the remote method call is "
    msg = msg + co.data
    alert(msg);
    // 显示友好信息
    msg = "The following error occurred during the "
    msg = msg + co.context
    msg = msg + " remote scripting call:\n"
    msg = msg + co.message
    alert(msg);
}
</SCRIPT>

Remote Scripting 调用故障诊断
找到某个 remote scripting 调用中的确切错误源并不总是一件容易的事情,因为 remote scripting 不仅涉及到客户而且涉及到服务器上的多个文件。不过,某些类型的错误属于一般性错误,而且容易发现。另外,用户可以用 remote scripting 机制的错误捕获程序获得调用过程中所出现错误的详细信息。
Remote Scripting进阶教程---检查错误 评论