|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
ASP在国内异常流行,因为国内大多使用的是盗版的Windows和盗版的SQLServer,而ASP+COM+SQLServer实际上也是一种不错的搭配,其性能也不输于PHP+MYSQL,特别是Windows系统和SQLServer都有图形界面,比APACHE和MYSQL易于维护,因此对于不重视知识产权的国家来说也是一种不错的选择。编程|毛病|毛病处置|打印常常看到一些初学asp的伴侣为了测试一个值各处用response.write来打印,
而要看页面效果时再删除这些语句或加上正文,在正式版本出来之前要云云重复
屡次。而有些工资了削减贫苦,爽性全当它是准确的,不做测试输入,像如许极
易呈现林林总总的成绩,最多见的是假如要天生一条sql语句,必要利用变量,如
果不做测试打印,很难做到一次准确,在chinaasp论坛里常常见到这类成绩,老
是有人问这条语句为何会堕落等成绩,实践上他只需打印出这条语句看一下语
法是不是准确就好了,而不用各处追着人问。现实上好的编程习气应当是在本人没
有很年夜掌控的情形下把天生的语句或变量值打印出来,但如许做又费时吃力,有
没有对照好的办理办法呢?
在C里可使用_DEBUG如许的测试开关来把持debug版本和release版本,但
asp中并没有相似#define这类语句,那末是否是我们就没有举措了呢?实在我们
能够模仿c的这类做法,那就是在global.asa文件里界说一个application变量来
把持,象上面这个例子:
在global.asp里加上:
application("DEBUG")=1
然后做这么一个历程:
--------------------------------------------------------
Name:PRINT
Argument:a_strPrint:打印字符串
Return:
Description:打印(仅在DEBUG形态下运转)
Hitory:Createbybigeagle
--------------------------------------------------------
SubPRINT(a_strPrint)
ifApplication("DEBUG")=1then
Response.Write("<Paling=center>"+a_strPrint+"</P>")
endif
EndSub
这个历程的功效就是当测试开关翻开时(application("DEBUG")=1)打印
,而当测试开关封闭(application("DEBUG")=0)就不会有打印输入了。如许
在程序调试时代,你能够翻开测试开关,以察看变量的值,而当要看页面效果或
公布release版本时就能够封闭测试开关,如许一切的测试输入就不会呈现在页面
上。
以上谈到的是变量的测试输入,上面要谈谈准确性检测成绩。常常见到良多
人把页面提交过去或数据库掏出的值想都不想就用,基本不做准确性检测,那你
怎样能包管这些值的准确性呢?好比有一个input,提交后它的值应当是一个值包
含数字的字符串,但假如用户的输出包括其他字符,若不做准确性检测,那当你
用cint或clng转换时就会产生毛病,全部程序溃散。别的一种情形是如许,当你
从数据库中取值或诸云云类的操纵,应当是不会产生成绩,但假如呈现数据库出
错等成绩,那末用户也只能见到一个诸如odbc毛病等等的提醒信息,关于一个
成熟的商品程序来讲,这点是很欠好的,实在如今包含国际良多出名站点也呈现
这类成绩。以是应当养成如许一个习气,那就是任何大概出成绩的变量、参数在
利用之前都应当做准确性检测,而且对数据库操纵后应该判别否乐成。这是就又呈现一个版本成绩,假如是DEBUG版则应显现堕落信息以备修正,而release版则应当引诱到一个一致页面,如“本站临时呈现未知妨碍,请稍候再来"等等,准绳上永久不要给用户一个体系堕落信息页面。要完成上述功效,请看以下几个函数和历程。
--------------------------------------------------------
Name:ASSERT
Argument:a_blnConditon:断言前提
a_FunctionName:挪用函数
a_ErrorString:毛病描叙
Return:
Description:断言
Hitory:CreatebyBigeagle
--------------------------------------------------------
SubASSERT(a_blnConditon,a_FunctionName,a_ErrorString)
ifApplication("DEBUG")=0then
ifa_blnConditonTRUEthen
response.redirect("../include/bigerror.asp")
endif
else
ifa_blnConditonTRUEthen
callprint("断言毛病:在<fontcolor=red>"+a_FunctionName+"</font>呈现:"+a_ErrorString)
response.end
endif
endif
EndSub
这个历程的感化是检测变量或参数无效性,假如前提a_blnConditiontrue,那末假如测试开关翻开,则显现毛病信息,假如测试开关封闭,则重定向到毛病处置页面bigerror.asp。
--------------------------------------------------------
Name:CheckError
Argument:
Return:&nb</p>楼上说交互性不好,太牵强了吧。在微软提供的一套框架中,利用asp做网站,开发效率高,使用人数少,减少不必要的开销。交互性是互动方式,是有开发人员决定的。 |
|