由asp的一個錯誤,看語言的不同:asp & java

來源:互聯網
上載者:User

標籤:

今天查看網頁原始碼,無意發現原始碼尾部拋出asp的錯誤資訊,但沒有顯示在網頁上。

如果沒查看原始碼,還沒發現asp運行代碼出錯了。

 

大致情況是這樣,在asp中,有一個變數來表示使用者當前使用的容量,注意這個變數是字串,格式如: 20.3M,  50.6G

最後一個字元不是M,就是G

程式中需要做一個判斷,如果使用者使用的容量超過 50G,就彈出提示資訊了,相關代碼如下:

 

12345678910111213 <%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來改寫一下:

 

12345678910 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),當第一個條件不成立的時候,還會繼續判斷下一個條件是否成立:

再來一段驗證代碼:

123456789101112131415161718192021 <%function abc()    response.write("abc()...<br>")    abc = trueend 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

由asp的一個錯誤,看語言的不同:asp & java

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.