仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 558|回复: 8
打印 上一主题 下一主题

[学习教程] ASP网页编程之ASP毛病处置

[复制链接]
若天明 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 23:49:28 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
ActiveServerPage技术为应用开发商提供了基于脚本的直观、快速、高效的应用开发手段,极大地提高了开发的效果。在讨论ASP的安全性问题之前,让我们来看看ASP是怎么工作的。毛病|毛病处置|毛病处置复杂先容
ASP长短常复杂的,以致于很多的开辟者不会往思索毛病处置。毛病处置可以让你的使用程序加倍公道。我看到过良多个用ASP编写的贸易网站,年夜多半都疏忽了毛病处置。
毛病的范例
有三种次要的毛病范例:
编译毛病:
这类毛病呈现一样平常都是代码的语法成绩。由于编译毛病而招致辞ASP中断运转。
运转毛病
这个毛病是产生在你筹办运转ASP时的。比方:假如你试图给一个变量赋值,可是却超越了该变量同意的局限。
逻辑毛病
逻辑毛病是最难被发明的,这类毛病常常是一种布局毛病,电脑是发明不了的。这就必要我们彻彻底底地反省我们的代码。
由于编译毛病通常为和逻辑毛病一同产生的,一样平常都能显现出来,以是我们忧虑的就只是运转毛病。它都停止ASP的运转,并且给用户丢下一堆很不友爱的笔墨。
那末我们要如何处置运转毛病呢!?我们先来看看,ASP独一供应给我们的毛病命令---OnErrorResumeNext(这里提示一下初学者,在ASP中只要OnErrorResumeNext语句,没有OnErrorResumeGoto语句)
假如你不利用OnErrorResumeNext语句的话,统统运转毛病城市产生,这个是致命的,那末就会有一段毛病代码“展示”给用户,并且ASP程序也会中断。

上面就是一个毛病代码:


MicrosoftOLEDBProviderforODBCDriverserror80004005
[Microsoft][ODBCDriverManager]Datasourcenamenotfoundandnodefaultdriverspecified
/test.asp,line60


当我们在程序最下面利用OnErrorResumeNext语句时,一切的毛病城市被疏忽,程序会主动实行下一条语句。如许程序就会完整实行,堕落后用户也不会看到堕落信息。可是如许也有欠好的中央,那就是假如程序没有依照你想像的实行的话,你就很难找到究竟是那里出了成绩,以是你就得在需要的中央对毛病举行处置。
处置毛病
在ASP中,处置毛病的最好的举措就是在程序最底端放上代码来处置毛病。我也保举在每一个ASP程序都利用缓冲区。如许的话,假如毛病产生,页面就会中断,页面内容也会被扫除,如许用户就不会看到毛病信息,对你们的埋怨也就少了!上面是一个例子:
<%@LANGUAGE="VBScript"%>
<%设置buffer为True
Response.Buffer=True
入手下手毛病处置
OnErrorResumeNext
%>
<%毛病处置
IfErr.Number0Then
扫除页面
Response.Clear
显现毛病信息给用户
%>
<HTML>
<HEAD>
<TITLE></TITLE>
</HEAD>
<BODYBGCOLOR="#C0C0C0">
<FONTFACE="ARIAL">AnerroroccurredintheexecutionofthisASPpage<BR>
Pleasereportthefollowinginformationtothesupportdesk<P>
<B>PageErrorObject</B><BR>
毛病Number:<%=Err.Number%><BR>
毛病信息:<%=Err.Description%><BR>
堕落文件:<%=Err.Source%><BR>
堕落行:<%=Err.Line%><BR>
</FONT>
</BODY>
</HTML>

<%EndIf%>


你们下面看到了,我起首设置OnErrorResumeNext,如许呈现毛病就不会影响程序的实行。

毛病处置和数据库
在毛病处置中到场数据库的实行是很庞大的。倘使我们有一个程序,有良多的命令去处数据库中增加纪录,假如insert/update在程序的最底部实行,假如我们后面又毛病产生,那就完了!我们就会向数据库中增加了一个毛病的信息。由于我们用了OnErrorResumeNext统统的毛病都被疏忽了!即便后面堕落,程序仍旧会向数据库中增加数据的。
为制止这类情形,我们就先得做些四肢举动,准确处置的办法以下:

IfErr.Number=0AndobjConnection.Errors.Count=0Then

这里才干实行语句,由于没有毛病
SetrstResults=dbData.Execute(txtSql)

EndIf



更多初级的处置举措
当一个毛病产生时,你们也能够显现更多的毛病信息。上面是同时处置数据库和页面毛病的例子,有了它我们一下就可以发明我们程序中的一切毛病。(因为有些中央我以为英文更能说时成绩,以是没有翻译)。
<%
IfErr.Number0Then
Response.Clear
SelectCaseErr.Number
Case8指定毛病的Number
在这里处置自界说毛病

CaseElse一样平常毛病

IfIsObject(objConnection)Then
IfobjConnection.Errors.Count>0Then
%>

<B>DatabaseConnectionObject</B>

<%ForintLoop=0ToobjConnection.Errors.Count-1%>

ErrorNo:<%=objConnection.Errors(intLoop).Number%><BR>
Description:<%=objConnection.Errors(intLoop).Description%><BR>
Source:<%=objConnection.Errors(intLoop).Source%><BR>
SQLState:<%=objConnection.Errors(intLoop).SQLState%><BR>
NativeError:<%=objConnection.Errors(intLoop)</p>
[1][2]下一页

想法是和程序员的想法不一样的.至于为什么.大家去想一想.跟心理学有关的
若天明 该用户已被删除
沙发
 楼主| 发表于 2015-1-20 12:05:56 | 只看该作者
弱类型造成潜在的出错可能:尽管弱数据类型的编程语言使用起来回方便一些,但相对于它所造成的出错几率是远远得不偿失的。
再见西城 该用户已被删除
板凳
发表于 2015-1-29 07:05:32 | 只看该作者
弱类型造成潜在的出错可能:尽管弱数据类型的编程语言使用起来回方便一些,但相对于它所造成的出错几率是远远得不偿失的。
飘灵儿 该用户已被删除
地板
发表于 2015-2-5 23:48:18 | 只看该作者
Application:这个存储服务端的数据,如果不清除,会直到web应用程序结束才清除(例如重启站点)
再现理想 该用户已被删除
5#
发表于 2015-2-14 07:38:23 | 只看该作者
那么,ASP.Net有哪些改进呢?
若相依 该用户已被删除
6#
发表于 2015-3-4 05:05:16 | 只看该作者
完全不知道到底自己学的是什么。最后,除了教程里面说的几个例子,还是什么都不会。
乐观 该用户已被删除
7#
发表于 2015-3-11 17:21:15 | 只看该作者
代码逻辑混乱,难于管理:由于ASP是脚本语言混合html编程,所以你很难看清代码的逻辑关系,并且随着程序的复杂性增加,使得代码的管理十分困难,甚至超出一个程序员所能达到的管理能力,从而造成出错或这样那样的问题。
金色的骷髅 该用户已被删除
8#
发表于 2015-3-19 03:15:17 | 只看该作者
ASP主要是用好六个对象,其实最主要的是用好其中两个:response和request,就可以随心所欲地控制网页变换和响应用户动作了。
第二个灵魂 该用户已被删除
9#
发表于 2015-3-27 06:11:10 | 只看该作者
下面简单介绍一下我学习ASP的方法,希望对想学习ASP的朋友有所帮助...
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-30 00:41

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表