ASP开发中可能有时候会用大段的if... else 的判断,不过如果是动态Response.write的内容,你想更方便阅读代码,可以用Response.End()来终端ASP的执行,也就类似于Break的用法,举个例子:
if (userid="")or(password="") then Response.Write("<script lanuage=javascript>alert('UserName or Password is Empty!');location.href='../default.asp';</script>") Response.End() '这里进行了中断 end if 下面是不为空进行读取数据库的操作,省略了n行代码
这样当传入的用户名或密码为空时,自动write提示信息信息,然后Response.End()中断程序,从而达到if 。。。else的作用。
另外使用Response.End的时候,就是我们日常调试程序的时候,比如
相输出拼接的SQL语句,而不想执行下面的代码,那么可以这么做
sql="select * from userinfo " response.Write(sql) response.End() rs.open sql ,conn,1,1 '这句是不会执行的
sub debug() Response.End() end sub
上面的代码修改如下:
sql="select * from userinfo " response.Write(sql) debug() rs.open sql ,conn,1,1 '这句是不会执行的
这样当进行正式发布时,将函数debug中的语句注释掉,就可以起到调试的作用,不过这个也有个问题就是,如果你使用太多的debug(),可能在调试的时候程序会不能按照需要进行中断,可能有时候你不希望这些地方中断执行,那么我们来进一步重构debug()函数,如下:
sub debug(isBreak) 'isBreak是boolean值的参数,如果设置为true的时候则进行中断,否则,不进行中断处理 if isBreak then Response.End() endend sub
使用时候代码如下:
sql="select * from userinfo " response.Write(sql) debug(false) rs.open sql ,conn,1,1 '这句是会执行的rs.close() sql="select * from product " response.write(sql) debug(true) rs.open sql,conn,1,1 '这句不会执行