On Error Resume Next真的是害人啊。。
一个站点,前台展示页面是一个UTF-8编码,后台程序用的是GB2312。
前台UTF-8,是因为前台用到了大量的Ajax评论,UTF-8方便,不用转码。
后台GB2312,是因为后台有Upload程序,用到了ASPupload组件,当时在虚拟主机上时用UTF-8会出现问题,所以全部就改为了GB2312,现在虽然在服务器上但懒得改回UTF-8,还未测试UTF-8有无问题)
前台和后台放在同一个服务器上,程序分别用两个目录,因为使用同一个数据库,所以我引用了同一个conn.asp文件(前台的那个),但接下来问题一大堆。最可怕的是没有错误提示,出错时只是一个空白页,到最后才发现原来是conn.asp的编码问题。因为ASP程序中写了On Error Resume Next,所以都没有错误提示。
解决办法,注释掉On Error Resume Next,在两个目录下(其实就可以看成两个站点了,前后台程序之间没啥关系)分别放两个conn文件,一个UTF-8编码,一个GB2312编码。让每个站点的根文件夹下都有conn文件,在转移网站程序时也比较方便。
尤其是网上的一些ASP实例,常常用到了On Error Resume Next,然后使用了代码里自己写的错误提示,这样子有的错误也会提示,但没考虑到的错误就不会提示了。如果久没接触ASP,突然用起来很容易忽略这一点,调试起来因为没有错误提示你不会意识这已是个错误!我就是这样,调试了一整天。
另外,这次转移服务器的调试,因为代码中加了On Error Resume Next,除了以上提到的代码编码的错误没有提示外,还有很多错误也都没有提示,比如:上传的文件夹不存在、加水印的组件不支持、文件夹没有更改的权限,这些通通都没提示,调试起来着实浪费时间。

1条评论
chester 2009-02-02 9:52
怎么说呢,有时候还是要的,比如容错处理的时候。。。。
[回复]