|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
强大的可扩展性。ASP具有强大的扩展性,可以实现与多种网络、硬件设备的连接:通过专用的通讯线路远程接入企业;通过远程拨号服务器为远程拨号客户提供服务;通过WAP为移动电话互联网客户服务。编程|初级7.4.2VBScript毛病处置
在VBScript中,可使剧本注释器不处置其找到的任何毛病,而且利用OnErrorResumeNext语句持续运转下个语句。一旦这个语句已被处置,剧本引擎将持续运转前面的程序,而不睬会已发明的任何毛病。但是,这类历程仅合用于按次实行语句的情况,换句话说,不合用于嵌套的函数或子程序。
1.利用OnErrorResumeNext语句
一个毛病在子程序中呈现时,假如没有运转OnErrorResumeNext语句,那末毛病将被交给挪用它的情况,这个历程一向反复到找到运转OnErrorResumeNext语句的情况持续运转,大概找到缺省的剧本毛病处置器,把毛病交给ASP而且IIS显现缺省毛病网页。这个历程如-16所示:
-16毛病处置历程
这类毛病挪用链意味着能够创立避免使程序中断运转的运转期毛病的函数和子程序。假如在子程序的开首安排一个OnErrorResumeNext语句,任何运转期毛病会中断这个子程序的运转,可是挪用该子程序的程序将持续运转而不会引发网页的中断。
比方,假如必要向一个文件中写进字符串,能够经由过程一个自力的函数对文件举行会见文件,避免毛病中止全部程序的运转:
createafilenamedstrFileName,overwritinganyexistingonewiththatname
andwritesstrContentintoitthenclosesthefile
returnsTrueifitsucceeds,orFalseonanyerror
FunctionWriteNewFile(strFileName,strContent)
OnErrorResumeNextturnoffthedefaulterrorhandler
WiteNewFile=Flasedefaultreturnvalueoffunction
SetobjFSO=CreateObject("Scripting.FileSystemObject")
IfErr.Number=0ThenSetobjFile=objFSO.CreateTextFile(strFileName,True)
IfErr.Number=0ThenobjFile.WriteLinestrContent
IfErr.Number=0ThenobjFile.Close
IfErr.Number=0ThenWriteNewFile=True
EndFunction
注重下面的程序在试图处置每一个程序语句之前,先反省VBScript的Err工具的Number属性。假如这个值为0(还没有呈现毛病),那末就可以够持续对文件的定进和创立历程。但是假如毛病的确产生了,剧本引擎将设置Err工具的属性的值,而且持续处置下一行。
只需不引发毛病而能一般运转,函数的前往值将设置为“True”。不然函数将前往“False”。在编程中能够在对其举行测试今后,再利用该函数和接纳其他举动。
上面是一个复杂的例子,我们但愿对义务的第一部分接纳一个自力的函数,以便能更准确地分辨堕落误发生在那边。如许,调试时也更简单浏览代码。在页面的主程序中,能够挪用三个独自的函数。
IfCreateNewFile(strFileName)Thencreatethenewfile
Response.Write"Newfilesuccessfullycreated<BR>"
IfWriteContent(strContent)Thenwritethecontent
Response.Write"Contentwrittentofile<BR>"
Else
Response.Write"ERROR:Failedtowritetothefile<BR>"
EndIf
IfCloseFile(strFileName)Then
Response.Write"Fileclosed<BR>"
Else
Response.Write"ERROR:Failedtoclosethefile<BR>"
EndIf
Else
Response.Write"ERROR:Failedtocreatethenewfile<BR>"
EndFunciotn
2.利用OnErrorGoto0
在ASP2.0(只管没有文档纪录)和ASP3.0中,也能利用OnErrorGoto0语句恢复缺省的毛病处置举动。在运转这个语句后,产生的运转期毛病将招致缺省毛病处置,在情况链中反省每一个嵌套的程序,直到主页面代码。假如没有其他的情况封闭缺省毛病处置,网页的实行将中断并显现IIS缺省毛病网页。
3.VBScriptErr工具
在后面的例子中,封闭缺省毛病处置时,经由过程反省VBScriptErr工具的Number属性,检察毛病是不是已呈现。Err工具存储了关于运转期毛病的信息,表7-3和表7-4给出了VBScriptErr工具供应的办法和属性。
表7-3VBScriptErr工具的办法
方法
说明
Clear
扫除以后一切的Err工具设置
Raise
发生一个运转期毛病
表7-4VBScriptErr工具的属性
属性
说明
Description
设置或前往一个形貌毛病的字符串
Number
(缺省)设置或前往指定一个毛病的值
Source
设置或前往发生毛病的工具的称号
利用这些属性能够反省产生了哪一种毛病。比方,能够依据毛病号接纳分歧的措施,也能够用Source和Description的属性值为用户供应毛病信息,大概传送到一个文件中。
也能够利用Err工具天生一个毛病。为何要做这些呢?由于偶然想把一个定制的毛病动静传送给用户。能够把Err工具的属性设置成所但愿的任何值。然后挪用Raise办法来发生这类毛病,如许做会中断程序的运转,而且把毛病沿挪用链向回传送。
上面的例子显现了在服务器磁盘上读取一个文本文件时,怎样处置毛病。注重怎样利用常数vbObjectError,以断定所选择的毛病号不会和一个已存在的毛病号搅浑。经由过程把恣意选择的毛病号加到此常数中,就可以够包管和预界说的毛病不搅浑。
FunctoinReadThisFile(strFileName)returnsthecontentasastring
OnErrorResumeNext
ReadThisFile=""defaultreturnvalueoffunction
SetobjFSO=CreateObject("Scripting.FileSystemObject")
SetobjFile=objFSO.OpenTextFile("strFileName",ForReading)
SelectCaseErr.Number
Case0OK,takenoaction
Case50,53standardfileorpathnotfounderrors
createcustomerrorvaluesandraiseerrorbackupthecallchain
intErrNumber=vbObjectError+1073customerrornumber
strErrDescrip</p>[1][2]下一页
写软件都是想的时间比写的时间要长的.如果反过来了就得看看是什么原因了.另外大家可以回去问问公司里的小MM.(一般企业里,跟你们交付软件接触得最多的是她们) |
|