日期:2014-05-17  浏览次数:21420 次

请教,0 = Err 是什么意思? 在线等!
问题如下:

在ASP脚本中,有一段代码:
Set   upl   =   Server.CreateObject( "SoftArtisans.FileUp ")     //创建一个对象
If   0   =   Err   Then       //请问这里的0   =   Err   是什么意思?
……
……

------解决方案--------------------
如果没有错误发生
------解决方案--------------------
保存替换filename
------解决方案--------------------
asp 内置的 err对象
ASPDescription - returns a description for all non-ASP errors.
Category - the evil being, external object, or script that caused the error.
Column - column position of the rogue character.
Description - description of ASP error.
File - the ASP file that caused the error.
Line - the line number of the evil code.
Source - the actual evil code that caused the error.
你有一千个理由使用该对象
------解决方案--------------------
If 0 = Err Then

是编程风格问题,防止变量被覆盖。虽然看起来不是很好看,不过很多程序员用这种风格,见仁见智吧。
------解决方案--------------------
一般写成 If Err = 0 then 大家都比较习惯看这样的写法,不过既然这语句是判断是否相等,写成 If 0 = Err Then 语法上也没错啊.
您别把0看做是0,您可以认为:
a=0
if a=err then 两个变量相比较,if a=b then 和 if b=a then 您不会还觉得别扭吧.
这些不需要问的,那么叫真干吗.保持自己的良好习惯,别人不好的习惯写出的代码看懂就行了,没那么多why.
------解决方案--------------------
在C++ JAVA等 判断2个变量相同使用==符号的语言中
保持以上这种风格是种很好的习惯
因为在要实现if(Err==0)时
如果写成 if(Err=0)
与if(0=Err) 的编译结果是不一样的

前者最多警告,后者编译不会通过

------解决方案--------------------
就举C++的例子
if(Err=0)
{执行代码...}

这样的C++程序编译是可以通过的
因为首先执行Err=0的赋值操作
然后再把Err进行 TRUE FALSE判断
因为Err永远是0 所以这个执行代码是永远不执行的

但代码愿意却是if(Err==0) 当Err为0时才执行

程序员不是圣人 写代码总会有疏忽
漏一个 "= "是很平常的 所以通常使用 常量==变量 作为判断代码来写

这样做的好处是 当漏 "= "后变成 if(0=Err)时 编译是无法通过的
因为常量是无法赋值的


------解决方案--------------------
没有错误,往下执行啊
------解决方案--------------------
不过个人认为 使用VB VBS写程序时 可以不使用这种风格
因为 VB的 赋值与判断相等 都是 单独的 "= "
而且也不支持C++的 先赋值再判断 因此不会出现C++上诉的这类问题