应用于分布式网际网络的爪哇脚本语言程序错误处理方法

文档序号:6438072阅读:278来源:国知局
专利名称:应用于分布式网际网络的爪哇脚本语言程序错误处理方法
技术领域
本发明涉及一种应用于分布式网络的爪哇脚本语言程序错误处理方法,特别是指一种在客户端、服务器端以及传输通信协议程序中利用预定的格式撰写其各自的错误处理程序代码,使得当客户端程序以及服务器端程序发生错误时,能将发生错误的文件名称与文件功能,通过一延伸标记语言格式字符串的形式输出的爪哇脚本语言程序错误处理方法。
背景技术
爪哇脚本语言已经大量被应用于当今的分布式网际网络中,尽管其因为具有跨平台的特性,使得在整体开发难度上相对较低,但其本身所提供的错误处理机制却相当薄弱。现有的爪哇脚本语言内建有错误尝试与捕捉语法(try,throw,and catch)作为错误处理的机制。当位于错误尝试区块中的呼叫发生错误时,即停止程序的运作,并跳至错误处理机制中进行处理。然而,上述的功能却仅限制在目前所执行的文件上,如此一来,当远程服务器发生程序错误时,其发生错误的文件名称以及对应的功能并无法让程序开发者顺利获知,无可避免地,将增加程序除错的困难性。
请参阅图1,图1为一分布式网际网络10的示意图。网际网络最少包含有一客户端12、一服务器端13以及一传输通信协议15用来沟通客户端12与服务器端13。当客户端12欲存取数据库17内的资料时,客户端12可呼叫服务器端13,由服务器端13对数据库17进行存取。服务器端12与客户端13间的资料沟通,均是通过传输通信协议15达成。举例来说,位于客户端12的使用者可能位于A位置,当其使用一浏览器(browser)欲浏览B位置的服务器(端)13的网站资料时,必先于浏览器上的命令列输入一符合传输通信协议15的控制命令以及网站位置(如http//XYZ.com),此例中的传输通信协议15即是架构在超文本传输协议(hyper text transmission protocol,HTTP)的基础上。服务器端13在接受到来自于客户端12的要求时,便会向数据库17存取资料(本例中可为一网页内容),此网页内容便能显示在客户端12使用者的显示屏上。又,假设使用者欲通过文件传输协议(file transmissionprotocol,FTP)对远程数据库进行资料存取时,其同样可于浏览器的命令列键入如ftp//ABC.org的命令,如此一来便能对ABC.org地址上的资料进行上/下载的动作。
然而,在上述由客户端12向服务器端13发出请求,并交由服务器端13处理以向数据库17存取资料的过程中可能发生任何预期以外的错误。现今的爪哇脚本语言并没有提供完整的错误堆栈供程序开发者除错以及供使用者回报。
因此,由上可知,上述的现有技术,在实际使用上,显然有不便与缺点存在,可加以改进。
于是,本发明人有感于上述缺点可以改善,潜心研究并配合理论的运用,终于提出一种设计合理且有效改善上述缺点的本发明。

发明内容
本发明的主要目的是利用爪哇脚本语言程序本身的错误尝试与捕捉语法,配合将发生错误的文件名称与功能,利用一延伸标记语言格式字符串由主程序呼叫子程序的反方向回传,使得程序开发者得以搜集到完整的错误。经由本发明所提供的方法,应用于现今分布式网际网络架构的环境下,使得不论发生在客户端或服务器端乃至于远程呼叫程序的错误,都能以延伸标记格式语言格式字符串的形式搜集并传递至客户端主程序错误处理程序。因此,程序开发者将能更清楚地了解到究竟是哪里发生了错误。
本发明提供一种应用于分布式网际网络的爪哇脚本语言程序错误处理方法。分布式网际网络包含有一客户端、一服务器端以及一数据库,客户端包含有至少一主程序,每一主程序包含有至少一子程序,服务器端同样包含有至少一主程序,每一服务器端主程序包含有至少一子程序,以及一远程呼叫程序。客户端与服务器端是通过一传输通信协议彼此联系。本发明的爪哇脚本语言错误处理方法包含有提供客户端主程序一错误处理程序,当执行客户端主程序发生错误时,呼叫客户端主程序错误处理程序,以产生对应的一延伸标记语言格式字符串;提供对应于客户端子程序的一错误处理程序,当执行客户端子程序发生错误时,呼叫客户端子程序错误处理程序,以产生对应的延伸标记语言格式字符串,并将该延伸标记语言格式字符串以一第一预定顺序经由子程序错误处理程序传送至主程序错误处理程序;提供对应于远程呼叫程序的一错误处理程序,当执行远程呼叫程序发生错误时,呼叫远程呼叫程序错误处理程序,以产生对应的延伸标记语言格式字符串,此延伸标记语言格式字符串经由远程呼叫程序错误处理程序传送至客户端,之后同样遵照第一预定顺序传送至客户端主程序错误处理程序;提供对应于服务器端主程序的一错误处理程序,当执行服务器端主程序发生错误时,呼叫服务器端主程序错误处理程序,以产生对应的该延伸标记语言格式字符串,服务器端主程序延伸标记语言格式字符串经由服务器端主程序错误处理程序传递,并以第一预定顺序经由客户端子程序错误处理程序传递至客户端主程序错误处理程序;提供对应于服务器端子程序的一错误处理程序,当执行服务器端子程序发生错误时,呼叫服务器端子程序错误处理程序,以产生对应的延伸标记语言格式字符串,服务器端子程序延伸标记语言格式字符串以一第二预定顺序经由服务器端子程序错误处理程序传递至服务器端主程序错误处理程序,此延伸标记语言格式字符串子传送至客户端后,再以第一预定顺序传递至客户端主程序错误处理程序;以及提供传输通信协议一服务器端延伸标记语言格式字符串传递程序与远程呼叫程序错误处理程序配合,分别用来传递服务器端延伸标记语言格式字符串与远程呼叫程序延伸标记语言格式字符串至客户端。


图1为分布式网际网络的示意图。
图2为本发明的爪哇脚本语言程序错误处理方法的流程示意图。
具体实施例方式
请参阅图2,图2为本发明的爪哇脚本语言程序错误处理方法的流程示意图。网际网络50包含有一客户端100、一服务器端150、一传输通信协议200以及一数据库250。
当使用者通过一使用者接口102执行客户端主程序时(步骤104)发生错误,其主程序中有一错误处理程序代码区块专门用来处理主程序发生错误的情况。当执行客户端主程序发生错误时,即可呼叫主程序错误处理程序,并将错误以一延伸标记语言(XML)格式字符串的形式传送至主程序错误处理堆栈。所利用的方法为爪哇脚本语言程序中所内建的尝试以及错误捕捉功能。主程序包含有至少一子程序,于执行子程序(步骤106)发生错误时,同样利用尝试以及错误捕捉功能干子程序内错误处理程序代码区块捕捉发生错误的子程序文件名称与功能,并同样以延伸标记语言格式字符串的形式传递至子程序错误处理堆栈(步骤107)。子程序错误处理堆栈将响应子程序错误所产生的延伸标记语言格式字符串以一第一预定顺序传递至主程序错误处理堆栈105。此第一预定顺序正好与主程序呼叫子程序执行的顺序相反。换句话说,当主程序A包含有子程序B,而子程序B另外包含有一子程序C时,一般来说各程序的执行顺序将为A→B→C。在本发明中,当子程序C发生错误时,其对应产生的延伸标记语言格式字符串将由其对应的错误处理堆栈开始传递至子程序B的错误处理堆栈然后才是主程序A的错误处理堆栈。之后,所有客户端的错误处理堆栈的内容(XML格式字符串)将可由程序呼叫显示在客户端的显示屏上(如步骤109所示)。由于XML格式字符串包含有主程序(或子程序)发生错误的程序功能以及文件名称等信息,所以仅显示让系统维护者或是程序开发者知悉便已足够。
服务器端150同样包含有至少一主程序,而每个主程序亦可包含有至少一子程序。当执行主程序151发生错误时,主程序内的错误处理程序代码区块便可捕捉发生错误的主程序文件功能以及名称,并以延伸标记语言格式字符串的形式输出至主程序错误处理堆栈(步骤152),而其所属子程序于执行时(步骤153)如果同样发生错误,同样利用本身的错误处理程序代码区块进行错误捕捉,并传送至子程序对应的错误处理堆栈154。与客户端的情况类似,子程序错误处理堆栈154所搜集到的子程序延伸标记语言格式字符串是以一第二预定顺序传递至主程序错误处理堆栈152,其中此第二预定顺序是与主程序呼叫子程序执行的顺序相反。
传输通信协议(较佳为一XMLHttp传输通信协议)200包含有一XML远程呼叫程序201专门用来处理来自于客户端100对服务器端150的要求,或是服务器端150响应客户端100的结果(此远程呼叫程序201一般来说是储存于服务器端150)。当此远程呼叫程序201发生错误时,同样呼叫远程呼叫程序错误处理程序,并将所得的延伸标记语言格式字符串传递到远程呼叫程序错误处理堆栈202,之后同样会传送到客户端100。而服务器端主程序或服务器端子程序执行发生错误所对应产生的延伸标记语言格式字符串则是经由同样位于传输通信协议200内的服务器端XML格式字符串传递程序203往客户端100传送。更精确地说,服务器端子程序执行153发生错误所产生的延伸标记语言格式字符串将遵循上述的第二预定顺序,尤其本身对应的错误处理堆栈开始经由服务器端主程序错误处理堆栈152传送至服务器端XML格式字符串传递程序203,之后再遵循第一预定顺序由客户端子程序错误处理堆栈107传送至客户端主程序处理堆栈105。
传输通信协议200另外包含有一XML远程呼叫程序204,和上述的远程呼叫程序的目的相同,都是客户端100与服务器端150间的桥梁。本发明的方法另外包含的记录于客户端主程序错误处理堆栈105所搜集到的所有延伸标记语言格式字符串功能,此功能可由此远程呼叫程序204实现。客户端100将通过此远程呼叫程序204让服务器端得以记录客户端主程序错误堆栈105所搜集的延伸标记格式字符串(如步骤155)至数据库250。
由于传输通信协议较佳为一XMLHttp通信协议,客户端100与服务器端150间传送的资料均需符合XMLHttp通信协议的资料格式,也就是说,由服务器端150欲经由传输通信协议200传送的资料均为XMLHttp格式,故在此状况下,必须有判断来自于服务器端150的资料是否属于记载错误程序功能与文件名称的特殊字符串。此特殊字符串较佳为一<error>字符串,当判断由服务器端150回传的XMLHttp格式字符串中包含有此特殊<error>字符串时,即可判断此为响应程序错误的错误处理程序所产生,故需经过服务器端格式字符串传递程序203往客户端100传递。否则,其可直接依照原先预设的传递路径,也就是由服务器端经XMLHttp远程呼叫程序201传送至客户端100。
如下为客户端的一范例程序的程序原始码<pre listing-type="program-listing"><HTML><HEAD><script type=“text/javascript”src=“client ErrorHandle.js”></script>//引用客户端错误处理程序clientHrrorHandle.js//&lt;dp n="d5"/&gt;<script LANGUAGE=javascript>main();function main(){try{  subFunction();  }catch(e){   /使用了爪哇脚本语言中的错误尝试以及捕捉(try and catch)语法/   //第一个参数固定为“e”;   //第二个参数为程序功能“main”;    //第三个参数为程序实体文件名称“clientSample.asp”;   errorDialogV2(e,“main”,“clientSample.asp”);//rrorDialogV2函数为引用弹出错误信息接口//   }finally{   }//finally}/******************************************///子程序“subFunction”,同样也是使用了尝试捕捉语法/******************************************/function subFunction(){  try{  subSubFunction();  }catch(e){  var functionName=“subFunction”;  var fileName=“clientSample.asp”  /******************************************/  //第一个参数固定为“e”  //第二个参数为程序功能名称  //第三个参数为程序实体文件名称  /******************************************/  throw errorHandle(e,functionName,fileName);&lt;dp n="d6"/&gt;  }finally{  }//finally}/******************************************///子程序subFunction的子程序subSubFunction,或另外一个子程序,亦使用了尝试捕捉语法/******************************************/function subSubFunction(){  try{  throw“Error occurred”;//发生错误,即丢出所谓的“Error occurred信息”// }catch(e){  var functionName=“subSubFunction”;  var filename=“clientSample.asp”  /******************************************/  //第一个参数固定  //第二个参数为程序功能  //第三个参数为程序实体文件名称  /******************************************/  throw errorHandle(e,functionName,fileName);  }finally{  }//finally}</SCRIPT></HEAD><BODY></BODY></HTML></pre>由上述的客户端范例程序可以发现,需引用对应于此客户端范例程序的错误处理程序errorHandle,一旦有错误发生时,即呼叫此错误处理程序,并将错误发生的文件名称与程序功能以延伸标记语言格式字符串的形式输出。在此实施例中,因为输出有“Error occurred”的信息,故代表为subSubFunction在执行时发生错误。所引用的客户端错误处理程序errorHandle的原始程序代码如下<pre listing-type="program-listing">function errorHandle(e,functionName,fileName){ try{//当第一个参数e型态为一对象时//   if(typeof(e)==“object”){   retum“<error>”+e.description+“<function name=””+functiortName+””/><file name=””+fileName+””/></error></error>”;   }else if(typeof(e)==“string”){//当第一个参数e型态为一字符串时//   if(e.match(/<error>/i)==null){//判断此字符串是否为<error>,并分别有不同的格式输出//   return“<error>”+e+”<function name=””+functionName+””/><filename=””+fileName+””/></error>”;   }else{   return e+“<error><function name=””+functionName+””/><filename=””+fileName+””/></error>”;   }   }else{   return“<error>”+e+“<functionname=””+functionName+””/><filename=””+filename+””/></error>\   }  }catch(e){alert(“Catch Error in”+filename)}}</pre>如此一来,便在客户端错误处理堆栈有如下的XML格式字符串的输出<pre listing-type="program-listing"><errors> <error>   Error occurred  <funcition name=“subSubFunction”/>  <file name=“clientSample.asp”/>&lt;dp n="d8"/&gt; </error> <error>   <function name=“SubFunction”/>   <file name=“clientsample.asp”/>   </error>   <error>   <function name=“main”/>   <file name=“clientsample.asp”/>   </error> </errors></pre>由此可见,此XML格式字符串的回传方向是从发生错误的子程序开始以一与程序呼叫执行方向(由main→subFunction→subSubFunction)相反的第一方向顺序回传至主程序错误处理堆栈。
继续提供应用于服务器端的一范例程序如下<pre listing-type="program-listing"><%@Language=JavaScript%><!--引用服务器端错误信息处理程序--><!--#include File=“serverErrorHandle.inc”--><%/******************************************///程序起始点/******************************************/main();/******************************************///主程序“main”/******************************************/function main(){  try{   sunFunction();  }catch(e){   var functionName=“main”;&lt;dp n="d9"/&gt;   var filename=“serverSample.asp”;   /******************************************/   //第一个参数固定为“e”   //第二个参数为程序功能“main”   //第三个参数为程序实体文件名称“serverSample.asp”   /******************************************/   error Write(e,functionName,fileName)   }finally{   }}/******************************************///子程序“subFunction”/******************************************/function sunFunction(){  try{   subFunction();  }catch(e){   var functionName=“subFunction”   var fileName=“serverSample.asp”;   /******************************************/   //第一个参数固定为“e”    //第二个参数为程序功能“subFunction”   //第三个参数为程序实体文件名称“serverSample.asp”   /******************************************/   throw errorHandle(e,functionName,fileName);  }finally{  }}/******************************************///另一子程序“subSubFunction”&lt;dp n="d10"/&gt;/******************************************/function subSubFunction(){  try{   throw“Error occurred”//出现”Error occurred”字符串//  }catch(e){   var functionName=“subSubFunction”;   var fileName=“serverSample.asp”;   /******************************************/   //第一个参数固定为“e”   //第二个参数为程序功能“subSubFunction”   //第三个参数为程序实体文件名称”serverSample.asp”   /******************************************/   throw errorHandle(e,functionName,fileName);  }finally{  }}%></pre>如前所述,服务器端同样有一错误处理程序crrorHandle来对服务器端主程序或子程序执行发生错误时进行处理。在本实施例中,同样于子程序subSubFunction执行时发生错误(由字符串Error occurred出现可知)。此服务器端程序的执行毫无疑问的是由主程序开始一直往子程序方向执行,当每一程序代码区块发生错误时,由程序代码区块所对应的错误处理程序捕捉错误,并将错误以XML格式字符串的形式输出,而XML格式字符串的传递方向与程序被呼叫执行的方向恰好相反。接下来为服务器端错误处理程序的一实施例<pre listing-type="program-listing"><%/******************************************///处理错误信息包装XML格式/******************************************/function errorHandle(e,functionName,fileName){  try{&lt;dp n="d11"/&gt;   if(typeof(e)==“object”){   return“<error>”+e.description+“<functionname=””+functionName+””/><file name=””+fileName+””/></error></error>”;   }else if(typeof(e)==“string”){   if(e.match(/<error>/i)==null){  retutn“<error>”+e+“<function name=””+functionName+””><filename=””+fileName+””/></error>”;   }else{   return e+“<error><function name=””+functionName+””/><filename=””+fileName+””></error”;  }   }else{   return“<error>”+e+“<functionname=””+functionName+””/><file name=””+fileName+””></error;   }  }catch(e){Response.Write(“<error>”+e.description+“in File”+fileName+“</error>)”;}}/******************************************///处理错误信息包装XML格式并写至客户端/******************************************/function errorWrite(e,functionName,fileName){  try{   Response.CharSet=“Big5”;   Response.ContentType=“text/xml”;   var errorString=“”;   if(typeof(e)==“object”)   {   errorString=“<errors>”+errorString+“<error>”+e.description+“ <function name=””+functionName+””/><file&lt;dp n="d12"/&gt;name=””+fileName+””/></error></errors>”;   }//if   else if(typeof(e)==“string”){  if(e.match(/<error>/i)==null){  errorString=“<errors>”+errorString+“<error>”+e+“<functionname=””+functionName+””/><file name=””+fileName+””></error></errors>”;   }else{  errorString=“<errors>”+errorString+e+“<error><functionname=””+functionName+””/><file name=””+fileName+””/></error></errors>”;   }   }else{   errorString=“<errors>”+errorString+“<error>”+e+“<functionname=””+functionName+””/><file name=””+fileName+””/></error></errors>”;   }//else   Response.Write(errorString)   }catch(e){Response.Write.(“<error>”+e.description+“in File”+fileName+“</error>”);}}%></pre>服务器端子程序的错误被包装成XML格式字符串后,以一第二预定顺序由对应的子程序错误处理堆栈开始传送。由于服务器端的XML格式字符串需要由传输通信协议的服务器端XML格式字符串传递程序传送到客户端的主程序错误处理堆栈,以便客户端主程序错误处理堆栈能搜集所有不论客户端或服务器端甚至远程呼叫程序执行所发生的错误。与客户端错误处理程序相同,此服务器端错误处理程序实施例一开始即把错误信息(包含有发生错误的文件名称以及程序功能)以XML格式字符串的方式进行包装,然后再传送至传输通信协议以及客户端。
如下是用于客户端呼叫服务器端的远程呼叫程序一实施例的程序原始码<pre listing-type="program-listing"><!--引用错误处理机制弹出错误信息接口--><!--#include File=“errorPopV2.asp”-->&lt;dp n="d13"/&gt;<HTML><HEAD><!--引用客户端错误处理程序--><script type=“text/javascript”src=“clientErrorHandlejs”></script><!--引用通讯协议错误处理程序--><script type=“text/javascript”src=“xmlHttp.js”></script><script LANGUAGE=javascript>/******************************************///程序起始点/******************************************/main();/******************************************///主程序/******************************************/function main(){  try{   subFunction()  }catch(e){   /******************************************/   //第一个参数固定为“e”   //第二个参数为程序功能“main”   //第三个参数为程序实体文件名称“clientSample.asp”   /******************************************/   errorDialogV2(e,“main”,“clientSample.asp”);  }finally{  }//finally}/******************************************///子程序subFunction/******************************************/&lt;dp n="d14"/&gt;function subFunction(){  try{  subSubFunction();  }catch(e){  var functionName=“subFunction”;  var fileName=“clientSample.asp”;  /******************************************/  //第一个参数固定为“e”  //第二个参数为程序功能“subFunction”  //第三个参数为程序实体文件名称“clientSample.asp”  /******************************************/  throw errorHandie(e,functionName,fileName);  }finally{  }//finally}/******************************************/V子程序subSubFunction/******************************************/function subSubFunction(){  try{  /******************************************/  //呼叫服务器端提供服务  //第一个参数为程序路径  //第二个参数为传递的对象  /******************************************/  GetInfoV2(“serverSample.asp”,null);  }catch(e){  var functionName=“subSubFunction”;  var fileName=“serverSample.asp”  /******************************************/&lt;dp n="d15"/&gt;  //第一个参数固定为“e”  //第二个参数为程序功能  //第三个参数为程序实体文件名称  /******************************************/  throw errorHandle(e,functionName,fileName);  }finally{  }//finally}</SCRIPT></HEAD><BODY></BODY></HTML></pre>远程呼叫程序在执行时同样有发生错误的可能,一旦其发生错误,同样提供有对应的错误处理程序与错误处理堆栈用来捕捉搜集错误,以延伸标记语言格式字符串的形式往客户端传递,XMLHttp传输通信协议本身除了负责客户端与服务器端间的沟通之外,另外包含有判断由服务器端所回传的资料中是否有&lt;error&gt;字符串的存在,若有,则代表此不是一般的客户端与服务器端间传递的资料,而是一错误资料。故此错误资料将由服务器端XML格式字符串传递程序往客户端传递。
以上提供了包括客户端、服务器端以及远程呼叫程序的错误范例程序的原始码以及错误处理程序原始码等信息。其实,通过上述几种特定的程序代码撰写格式,当服务器端接收客户端呼叫服务发生错误时,即可将完整的错误信息堆栈捕捉并以XML文件格式描述并交由传输通信协议传递;而传输通信协议则可完整捕捉服务器端所输出的包含错误信息的标记延伸语言格式字符串,并将其传递至客户端处理;而客户端更能把由服务器经传输通信协议传送至客户端的XML错误字符串完整捕捉,最后输出XML错误字符串供程序开发者快速参考。此最后输出XML错误字符串的格式的一实施例;<pre listing-type="program-listing"><?xml version=“1.0”encoding=“big5?”><SMEPDM-ErrorLog>&lt;dp n="d16"/&gt;<errors>   <errors>   <error>Error occurred<function name=“subSubFunction”/>  <file name=“serverSample.asp”/>   </error>   <error>   <function name=“sunFunction”/>   <file name=“serverSample.asp”/>   </error>   <error>   <function name=“main”/>   <file name=“serverSample.asp”/>   </error>   </error>   <error><error position=“protocol”>  <function name=“GetInfoV2”/>  <file name=“xmlHttp.js”/>   </error>   <error>   <function name=“subSubFunction”/>   <file name=“clientSample.assp”/>   </error>   <error>   <function name=“subFunction”/>   <file name=“clientSample.asp”/>   </error>   <error>   <function name=“main”/>   <file name=“clientSample.asp”/>   </error>&lt;dp n="d17"/&gt;   </error></SMEPDM-ErrorLog></pre>此输出后的XML格式字符串即可以如上的方式显示或让程序开发者得以了解究竟是那边发生错误。以本实施例而言,当寻找到所谓的&lt;error&gt;字符串以及“Error occurred”显示的位置时,即代表发生错误的位置是在服务器端的子程序subSubFunction上。以此种文本方式显示整个分布式网际网络发生错误的文件名称或功能,程序开发者可一目了然地通过此记录文件的设置,达到快速获悉错误所在的目的,自然也能缩短整个除错的时程。由上述的错误记录文件,我们可知,当服务器端文件serverSample.asp中的subSubfunction功能出错时,其对应产生的XML格式字符串自将顺着服务器端文件呼叫的逆向,由服务器端传递至传输通信协议。而传输通信协议将通过判断&lt;error&gt;特殊字符串的存在,获悉此时由服务器端回传的为一揭示错误信息的XML格式字符串,而能由服务器端XML格式字符串传递程序传递到客户端。然后再由客户端呼叫程序的逆向传递到客户端(主程序)错误处理堆栈搜集。此搜集的结果将可被服务器端记录成如上的文件内容,或显示在程序开发者的显示屏上。
上述的错误信息显示方式,是基于一种延伸标记语言为基础的错误信息包装方式。此包装方式是提供一对起始卷标(较佳为&lt;errors&gt;与&lt;/errors&gt;),在此对起始卷标间包含有至少一对节点卷标(较佳为&lt;error&gt;与&lt;/error&gt;)。每对节点卷标之间包含有对应于此对节点卷标的一文件名称与程序功能(分别如clientSample.asp以及main)。此种错误信息包装方式另外包含有一预定字符串(如“Error occurred”)用来表示此预定字符串后的节点卷标所包含的文件中的程序子执行时发生错误。此外,这些节点卷标的排列方式,是依照一预定顺序,此预定顺序恰与文件中程序功能被呼叫执行的顺序相反。
相对于现有技术,本发明分别对客户端、服务器端以及传输通信协议提供一种基于延伸标记语言的错误处理程序以及执行程序的撰写格式。如此一来,不论是客户端、服务器端乃至于远程呼叫程序于执行发生错误时,对应的错误处理程序均能对这些错误发生的程序功能与文件名称进行处理,并以一延伸标记语言格式字符串的形式,由程序呼叫的逆顺序传递至客户端主程序错误处理堆栈。因此提供一完整的错误信息以及一明了易懂的延伸标记语言格式,让程序开发者能很快地了解程序错误的发生位置,而加速整个除错的动作。
以上所述仅为本发明的一较佳实施例,凡按照本发明申请专利范围所做的一般变化与修改,都属于本专利的覆盖范围。
权利要求
1.一种应用于一分布式网际网络的爪哇脚本语言程序错误处理方法,该分布式网际网络包含有一客户端、一服务器端以及一数据库,该客户端包含有至少一主程序,每一该主程序包含有至少一子程序,该服务器端同样包含有至少一主程序,每一该服务器端主程序包含有至少一子程序,以及一远程呼叫程序,该客户端与该服务器端是通过一传输通信协议相互联系,包含有下列步骤(a)提供对应于该客户端主程序一错误处理程序,当执行该客户端主程序发生错误时,呼叫该客户端主程序错误处理程序,以产生对应的一延伸标记语言格式字符串;(b)提供对应于该客户端子程序的一错误处理程序,当执行该客户端子程序发生错误时,呼叫该客户端子程序错误处理程序,以产生对应的该延伸标记语言格式字符串,并将该延伸标记语言格式字符串以一第一预定顺序由该子程序错误处理程序传送至该主程序错误处理程序;(c)提供对应于该远程呼叫程序的一错误处理程序,当执行该远程呼叫程序发生错误时,呼叫该远程呼叫程序错误处理程序,以产生对应的该延伸标记语言格式字符串,由该远程呼叫程序错误处理程序传送至该客户端,之后同样遵照该第一预定顺序将该远程程序延伸标记语言格式字符串传送至该客户端主程序错误处理程序;(d)提供对应于该服务器端主程序的一错误处理程序,当执行该服务器端主程序发生错误时,呼叫该服务器端主程序错误处理程序,以产生对应的该延伸标记语言格式字符串往该客户端传递,并以该第一预定顺序由该客户端子程序错误处理程序传递至该客户端主程序错误处理程序;(e)提供对应于该服务器端子程序的一错误处理程序,当执行该服务器端子程序发生错误时,呼叫该服务器端子程序错误处理程序,以产生对应的该延伸标记语言格式字符串,该服务器端子程序延伸标记语言格式字符串是以一第二预定顺序由该服务器端子程序错误处理程序传递至该服务器端主程序错误处理程序,之后传送至该客户端,再以该第一预定顺序传递至该客户端主程序错误处理程序;以及(f)提供该传输通信协议一服务器端延伸标记语言格式字符串传递程序,和该远程呼叫程序错误处理程序配合,分别用来传递该服务器端延伸标记语言格式字符串和该远程呼叫程序延伸标记语言格式字符串至该客户端;其中该客户端主程序、该客户端子程序、该服务器端主程序、该服务器端子程序以及该远程呼叫程序均包含有尝试与捕捉的程序代码撰写格式来与对应的错误处理程序配合,以输出对应的延伸标记语言格式字符串。
2.如权利要求1所述的应用于一分布式网际网络的爪哇脚本语言程序错误处理方法,其特征在于,另外包含有一步骤(g)由该客户端远程呼叫该服务器端记录将己传送至该客户端主程序错误处理程序的该延伸标记语言格式字符串。
3.如权利要求1所述的应用于一分布式网际网络的爪哇脚本语言程序错误处理方法,其特征在于,另外包含有一步骤(h)由该客户端显示己传送至该客户端主程序错误处理程序的该延伸标记语言格式字符串。
4.如权利要求1所述的应用于一分布式网际网络的爪哇脚本语言程序错误处理方法,其特征在于所述的第一预定顺序是与该客户端主程序呼叫所属子程序的顺序相反。
5.如权利要求1所述的应用于一分布式网际网络的爪哇脚本语言程序错误处理方法,其特征在于所述的第二预定顺序是与该服务器端主程序呼叫所属子程序的顺序相反。
6.如权利要求1所述的应用于一分布式网际网络的爪哇脚本语言程序错误处理方法,其特征在于所述的客户端延伸标记语言格式字符串包含有该客户端主程序与该客户端子程序发生错误的一文件名称以及发生错误的一程序功能。
7.如权利要求1所述的应用于一分布式网际网络的爪哇脚本语言程序错误处理方法,其特征在于所述的服务器端延伸标记语言格式字符串包含有该服务器端主程序与该服务器端子程序发生错误的一文件名称以及发生错误的一程序功能。
8.如权利要求1所述的应用于一分布式网际网络的爪哇脚本语言程序错误处理方法,其特征在于所述的远程呼叫程序延伸标记语言格式字符串包含有该远程呼叫程序发生错误的一文件名称以及发生错误的一程序功能。
9.如权利要求1所述的应用于一分布式网际网络的爪哇脚本语言程序错误处理方法,其特征在于所述的于判断有该服务器端延伸标记语言格式字符串由该服务器端回传是依据该服务器端所回传的一数据内是否包含有一特殊字符串。
10.如权利要求9所述的应用于一分布式网际网络的爪哇脚本语言程序错误处理方法,其特征在于所述的特殊字符串为&lt;error&gt;。
11.如权利要求1所述的应用于一分布式网际网络的爪哇脚本语言程序错误处理方法,其特征在于所述的传输通信协议为一XMLHttp协议。
12.如权利要求1所述的应用于一分布式网际网络的爪哇脚本语言程序错误处理方法,其特征在于所述的客户端主程序错误处理程序与该客户端子程序错误处理程序同为一相同的程序代码撰写而成。
13.如权利要求1所述的应用于一分布式网际网络的爪哇脚本语言程序错误处理方法,其特征在于所述的服务器端主程序错误处理程序与该客户端子程序错误处理程序同为一相同的程序代码撰写而成。
14.一种应用于一分布式网际网络的爪哇脚本语言程序错误处理的方法,该分布式网际网络包含有一客户端、一服务器端以及一XMLHttp传输通信协议用来联系该客户端以及该服务器端,该客户端包含有至少一主程序,每一该主程序包含有至少一子程序,该服务器端同样包含有至少一主程序,每一该服务器端主程序包含有至少一子程序,包含有下列步骤(a)提供该客户端对应于该客户端一错误处理程序,当执行该客户端主程序或该客户端子程序发生错误时,呼叫该客户端错误处理程序,以产生对应的一延伸标记语言格式字符串,并分别由一主程序错误处理堆栈与一子程序错误处理堆栈处理,且该子程序延伸标记语言格式字符串是以一第一预定顺序由该子程序错误处理堆栈传递至该主程序错误处理堆栈;(b)提供该传输通信协议一错误处理程序,当该客户端主程序或客户端子程序呼叫该服务器端主程序或服务器端子程序发生错误时,呼叫该传输通信协议错误处理程序,以产生对应的该延伸标记语言格式字符串以由一远程错误处理堆栈处理,该延伸标记语言格式字符串同样遵照该第一预定顺序传送至该主程序错误处理堆栈;(c)提供对应于该服务器端一错误处理程序,当执行该服务器端主程序或子程序发生错误时,呼叫该服务器端错误处理程序,以产生对应的该延伸标记语言格式字符串,并分别由一主程序错误处理堆栈以及一子程序错误处理堆栈处理,且该子程序延伸标记语言格式字符串以一第二预定顺序由该子程序错误处理堆栈传递至该主程序错误处理堆栈;以及(d)提供该传输通信协议一延伸标记语言格式字符串传递程序,用来将该服务器端错误处理程序所产生的延伸标记语言格式字符串传递至该客户端;其中,当执行该服务器端子程序发生错误时,对应该服务器端子程序错误所产生的延伸标记语言格式字符串按照该第二预定顺序由该服务器端传递至该传输通信协议,并由该延伸标记语言格式字符串传递程序传递至该客户端,再遵循该第一预定顺序传递至该客户端主程序处理堆栈;该客户端主程序、该客户端子程序、该服务器端主程序、该服务器端子程序以及该远程呼叫程序均包含有尝试与捕捉的程序代码撰写格式国际惯例来与对应的错误处理程序配合,以输出对应的延伸标记语言格式字符串至对应的错误处理堆栈。
15.如权利要求14所述的应用于一分布式网际网络的爪哇脚本语言程序错误处理方法,其特征在于,另外包含有一步骤(e)由该客户端远程呼叫该服务器端记录将己传送至该客户端错误处理程序的该延伸标记语言格式字符串。
16.如权利要求14所述的应用于一分布式网际网络的爪哇脚本语言程序错误处理方法,其特征在于,另外包含有一步骤(f)由该客户端显示己传送至该客户端错误处理程序的该延伸标记语言格式字符串。
17.如权利要求14所述的应用于一分布式网际网络的爪哇脚本语言程序错误处理方法,其特征在于所述的第一预定顺序与该客户端主程序呼叫所属子程序的顺序相反。
18.如权利要求14所述的应用于一分布式网际网络的爪哇脚本语言程序错误处理方法,其特征在于所述的第二预定顺序与该服务器端主程序呼叫所属子程序的顺序相反。
19.如权利要求14所述的应用于一分布式网际网络的爪哇脚本语言程序错误处理方法,其特征在于所述的客户端延伸标记语言格式字符串包含有该客户端主程序与该客户端子程序发生错误的一文件名称以及发生错误的一程序功能。
20.如权利要求14所述的应用于一分布式网际网络的爪哇脚本语言程序错误处理方法,其特征在于所述的服务器端延伸标记语言格式字符串包含有该服务器端主程序和该服务器端子程序发生错误的一文件名称以及发生错误的一程序功能。
21.如权利要求14所述的应用于一分布式网际网络的爪哇脚本语言程序错误处理方法,其特征在于所述的传输通信协议错误处理程序所产生的程序延伸标记语言格式字符串包含有该客户端呼叫该服务器端时发生错误的一文件名称以及发生错误的一程序功能。
22.如权利要求14所述的应用于一分布式网际网络的爪哇脚本语言程序错误处理方法,其特征在于所述的于判断有该服务器端延伸标记语言格式字符串由该服务器端回传是依据该服务器端所回传的一数据内是否包含有一特殊字符串。
23.如权利要求22所述的脚本语言程序错误处理方法,其特征在于所述的特殊字符串为&lt;error&gt;。
24.一种以延伸标记语言为基础的错误信息包装格式,包含有一对起始卷标以及至少一对节点卷标介于该对起始卷标之间,每一对该节点卷标之间包含有对应于该对节点卷标的一文件名称与一程序功能,该些节点卷标是以一预定顺序显示,其中该预定顺序相对于该节点对应的该程序功能与被呼叫执行的顺序相反。
25.如权利要求24所述的错误信息包装格式,其特征在于所述的对起始卷标为&lt;errors)与&lt;/errors&gt;。
26.如权利要求25所述的错误信息包装格式,其特征在于,另外提供一预定字符串用来指示包含有发生错误的程序功能与文件名称的节点卷标。
27.如权利要求26所述的错误信息包装格式,其特征在于所述的预定字符串为“Error occurre”。
28.如权利要求24所述的错误信息包装格式,其特征在于所述的节点卷标为&lt;error&gt;与&lt;/error&gt;。
全文摘要
一种应用于分布式网际网络的爪哇脚本语言程序错误处理方法,分别对客户端、服务器端以及传输通信协议提供一种错误处理程序以及执行程序的撰写格式。客户端、服务器端乃至远程呼叫程序在执行发生错误时,对应的错误处理程序均能以一延伸标记语言格式字符串的形式,将发生错误的程序功能与文件名称以程序呼叫的逆顺序传递至客户端主程序错误处理堆栈。
文档编号G06F9/40GK1517875SQ03100699
公开日2004年8月4日 申请日期2003年1月17日 优先权日2003年1月17日
发明者陈人豪, 卢东宏, 吴铨友, 林庆典 申请人:财团法人工业技术研究院
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1