• 由asp的一个错误,看语言的不同:asp & java


    今天查看网页源代码,无意发现源代码尾部抛出asp的错误信息,但没有显示在网页上。

    如果没查看源代码,还没发现asp运行代码出错了。

    大致情况是这样,在asp中,有一个变量来表示用户当前使用的容量,注意这个变量是字符串,格式如: 20.3M,  50.6G

    最后一个字符不是M,就是G

    程序中需要做一个判断,如果用户使用的容量超过 50G,就弹出提示信息了,相关代码如下:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <%
    str = "59.3G"
     
    if right(str,1) = "G" and cdbl(replace(str,"G","")) > 50 then
     
        response.write("> 50G")
         
    else
     
        response.write("< 50G")
         
    end if
    %>

    运行输出结果: > 50G

    当 str = "600.3M"的时候, 程序就抛出错误了:

    Microsoft VBScript 运行时错误 (0x800A000D)

    类型不匹配: 'cdbl'

    并没有输出我所期望的: < 50G

    我们用同样的逻辑判断,使用java来改写一下:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    String str = "59.3G";
             
    if(str.endsWith("G") && Double.parseDouble(str.replaceAll("G""")) > 50)
    {
        System.err.println("> 50G");
    }  
    else
    {
        System.err.println("< 50G");
    }

    输出的结果: 

    > 50G

    如果 String str = "630.3M";

    输出的结果:

    < 50G

    总结:

    从上面的两种代码来看,在asp中,当判断多个条件时(and),当第一个条件不成立的时候,还会继续判断下一个条件是否成立:

    再来一段验证代码:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    <%
    function abc()
        response.write("abc()...<br>")
        abc = true
    end function
     
     
    str = "59.3M"
     
    int x
     
    if right(str,1) = "G" and abc then
     
        response.write("> 50G")
         
    else
     
        response.write("< 50G")
         
    end if
    %>

    输出:

    abc()...

    < 50G

    而在 java 代码中,当进行多个条件(与, &)判断时,当第一个条件不成立的时候,就不会再进行下面的条件判断,不再执行下面的判断代码了。

    2014-04-02

  • 相关阅读:
    Azure终于支持大容量虚拟机了-最高32核,448G内存
    Windows Azure 不能ping通的解决方案
    一个使用微软Azure blob实现文件下载功能的实例-附带源文件
    从技术角度看云计算的特点
    DNS记录
    转载:Vue相关开源项目库汇总(史上最全)
    SSL CA
    MVC 5 中启用Session
    2015年的JavaScript:Angular之类的框架将被库取代
    sql server 2014 express
  • 原文地址:https://www.cnblogs.com/personnel/p/4584939.html
Copyright © 2020-2023  润新知