盘锦网站建设,盘锦做网站,盘锦网站设计,盘锦网页设计,盘锦网站制作,盘锦网络公司,盘锦网页制作,盘锦网站优化,盘锦网站推广,盘锦网站策划设计
设为首页  加入收藏  联系我们 日期:
博客登录 用户名: 密码: 注册
 
互动 博客 家园 相册 亲子乐园
媒体 盘锦直播 辽河晚报 盘锦论坛
汽车 盘锦违章 辽油违章 网上选号
娱乐 休闲游戏 热播剧集 高清影院
买卖 盘锦团购  房产 二手 消费指南
便民 人才 招聘 找工作 家政 教育
查询 医保帐户 汽车客运 公交线路 航空售票 列车时刻
电信 话费查询 3G上网卡 宽带测速 软件下载 网址大全
服务 网站建设 域名注册 空间租用 主机托管 成功案例
盘锦地区规模最大的网站建设机构 国家级网站建设资质
  首  页 自助建站 建站套餐 域名注册 空间租用 主机托管 成功案例 400电话 办公OA  

滥用on error resume next造成的空间被停用

发布时间:2008-11-18 16:35:18   浏览人数: 351437 次  

on error resume next 这条语句是用来屏蔽出错信息,当出错时,使得程序继续执行的,不过在使用中,似乎很多人没有考虑到on error resume next的作用范围.比如

<%

On Error Resume Next

     Set Conn
=Server.CreateObject("ADODB.Connection"
)

    
Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="&Server.MapPath("db.mdb"
)

     If
Err.Number<>0 Then Response.Write "数据库连接发生错误" : Response.
End

    


Set Rs
=conn.execute("Select * from 表"
)

Do While
Not rs.
eof

     response
.write rs(0
)

rs.
movenext

loop


%>

类似上面的代码,如果错误是发生在建立数据连接的时候,那么程序会按照我们设想的那样停止执行,给出出错信息,但假如是在set rs=conn.execute("select * from 表")这里出错呢?这个时候on error resume next仍然在起作用,这时候,一个占用cpu 100%的死循环就出现了,结果呢,如果服务器设置的好,那顶多你自己的站点无法访问了,如果服务器设置不够严格,那整个服务器的站点都要遭殃,结果就是空间商停掉你的空间.

代码改造一下

<%


Dim conn

Sub connect

On Error Resume Next

     Set Conn
=Server.CreateObject("ADODB.Connection"
)

    
Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="&Server.MapPath("db.mdb"
)

     If
Err.Number<>0 Then Response.Write "数据库连接发生错误" : Response.
End

End sub    


connect


Set Rs
=conn.execute("Select * from 表"
)

Do While
Not rs.
eof

     response
.write rs(0
)

rs.
movenext

loop


%>

这样on error resume next就只作用于connect这个过程了,后面程序出错,不会因为on error resume next而带来死循环.

另外,on error resume next会屏蔽掉出错信息,在写程序的时候,尤其是初学者写程序的时候,很有可能因为这条语句的使用,使你忽略掉程序里隐藏的一些小错误.所以一定要慎用.

 
由于死循环造成服务器cpu100%,我们将暂停空间web服务,待修复问题后才可重新开通



上一篇:关于 SQL Server 没有 dbo 权限的问题
下一篇:空间不够用,能否升级,如何升级?
互联盘锦网站 版权所有©2002-2012 0427.COM 本站E_mail:webmaster@0427.com
地址:辽宁省盘锦市兴隆台区鹤舞路1号 邮编:124010 本站客服热线:0427-3210427 3200427
本站长年法律顾问:北京英浩律师事务所 主任、高级律师:李海波 备案号:辽ICP备12007079号-2    
以下js为测试信息