<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆-199  評(píng)論-203  文章-11  trackbacks-0

    先匯總一下錯(cuò)誤的分類吧
    1 全角問(wèn)題
    2 =和==的問(wèn)題
    3 空格問(wèn)題
    4 拼寫問(wèn)題
    5 疏忽,忘記做該做的事情
    6 新東西,不是很熟悉


    下面是明細(xì),呵呵呵。

    1 老紫竹(java2000_net)
    我最難忘的一次,是自作聰明的在一個(gè)for循環(huán)后面加上了一個(gè)分號(hào),而且是在大量的代碼重構(gòu)之后,運(yùn)行時(shí)偶爾發(fā)生這個(gè)錯(cuò)誤。
    大概用了我近1周的時(shí)間。

    從那之后,我的代碼的大括號(hào),就都放在代碼行的后面了!

    1. for(int i=0;i<=10;i++);   
    2. {   
    3.   //   
    4. }  

     

    1. for(int i=0;i<=10;i++);{   
    2.   //   
    3. }  



    編輯器格式化代碼時(shí),可以有很大的幫助。
    說(shuō)說(shuō)大家曾經(jīng)常犯的低級(jí)錯(cuò)誤吧,也好讓其它朋友有個(gè)心理準(zhǔn)備,想拿塊豆腐砸自己腦袋的沖動(dòng)少幾次。


    2 jsp頁(yè)面莫名的報(bào)空指針,而且有時(shí)出有時(shí)不出。最后發(fā)現(xiàn)是jsp代碼里混了個(gè)全角的空格,排版比較亂的時(shí)候看不出來(lái)。然后那空格被當(dāng)變量名的一部分了,偏偏那變量還不常用。悲劇啊( ̄(工) ̄)

    3 當(dāng)年用vc,貌似寫個(gè)類似于jTable的東西,在我的機(jī)器上一切都好,在老板(小公司,cto也是老板之一)的機(jī)器上一跑就死。。。。。。。。然后發(fā)現(xiàn),我的機(jī)器分辨率是640×480,老板的是800×600的,結(jié)果數(shù)組溢出。。。。。。。


    4 寫了2個(gè)preparestatement,一頓addbatch,然而最后只寫了一個(gè)preparestatement.executeBatch();找了n長(zhǎng)時(shí)間才看到問(wèn)題所在。

    5 三層架構(gòu)里面的業(yè)務(wù)邏輯層比如:

    1. public bool Add(hLink.Model.FavoriteInfo model) {   
    2.   return dal.Add(model) > 0;   
    3. }  


    寫成了

    1. public bool Add(hLink.Model.FavoriteInfo model) {  
    2.   return Add(model) > 0;   
    3. }  


    還好碰到了一次,以后報(bào)stackoverflow...異常就知道什么錯(cuò)了,呵呵、

    6 struct CXTEST_DAT
    {
    ...
    WORD wLen;
    ...
    }
    int TestData(..., DWORD dwLen);
    使用時(shí):
    CXTEST_DAT stData;
    TestData(..., stData.wLen);
    自動(dòng)擴(kuò)展為DWORD后,長(zhǎng)度總是不對(duì)

    7 我也經(jīng)常犯低級(jí)錯(cuò)誤,但我覺(jué)得并不可笑,每次發(fā)現(xiàn)自己犯低級(jí)錯(cuò)誤后,自己的印象也更加深刻,重復(fù)犯錯(cuò)的機(jī)率就小了很多。

    比如,我第一次使用Java枚舉時(shí)是這樣寫:

    1. /** 
    2.  * SQLCommandType SQL命令類型枚舉 
    3.  * @author CodingMouse 
    4.  * @version 1.0.0.1 
    5.  */  
    6. public enum SQLCommandType {  
    7.           
    8.     /** 
    9.      * SQL查詢數(shù)據(jù)命令 
    10.      */  
    11.     SELECT,  
    12.     /** 
    13.      * SQL插入數(shù)據(jù)命令 
    14.      */  
    15.     INSERT,  
    16.     /**  
    17.      * SQL修改數(shù)據(jù)命令  
    18.      */  
    19.     UPDATE,  
    20.     /** 
    21.      * SQL刪除數(shù)據(jù)命令 
    22.      */  
    23.     DELETE  
    24.       
    25. }  



    當(dāng)在方法中switch傳入的枚舉參數(shù)值時(shí):

    1. switch(枚舉變量) {  
    2.     case SQLCommandType.SELECT  
    3.         // 中間的邏輯處理  
    4.          break;  
    5.     case SQLCommandType.INSERT  
    6.         ......  
    7. }  



    語(yǔ)法老報(bào)錯(cuò),卻不知道怎么回事,明明Java中的switch分支是支持枚舉的啊?
    后來(lái)擺渡了一下才知道原來(lái)switch分支中case枚舉時(shí)是不需要加枚舉類型前綴的


    8 oracle ,寫sql 語(yǔ)句時(shí)候 怎么老是提示錯(cuò)誤 ,語(yǔ)句老長(zhǎng) ,調(diào)試了一天 ,眼睛看花了 ,結(jié)果一看 ,掉了個(gè)冒號(hào)!!
    老紫竹的家


    9 又一次 裝了個(gè)防火墻 運(yùn)行myeclipse的時(shí)候 報(bào)錯(cuò),說(shuō)端口有問(wèn)題 ,我還以為是被占用 或者tomcat的問(wèn)題 弄了半天 百度 Google 都無(wú)果,猛然發(fā)現(xiàn)是被防火墻攔截了


    10 struts.xml ------>sturts.xml


    11 用C言語(yǔ)時(shí)
    if(i=1)
    {
    }本來(lái)我是想判斷真假
    結(jié)果......


    12 在修改配置文件的時(shí)候,就因?yàn)?span style="color: red">一個(gè)空格,而找了半天的錯(cuò)誤

    老紫竹的家
    13 在維護(hù)公司一個(gè)比較老的項(xiàng)目的時(shí)候,自作聰明地寫了這么一個(gè)類(主要是為了共用數(shù)據(jù)庫(kù)連接)
    public class DataQuery{
    //靜態(tài)的connection
    private static Connection con=ConnectionFactory.getConnection();

    private Collection <User> getUsers(int groupId){
    Statement st=null;
    ResultSet rs=null;
    try{
    st=con.createStatement();
    String SQL="......";
    ......
    }catch(Exception e){
    e.printStackTrace();
    }
    }

    //其他查詢方法,共用一個(gè)connection......
    }

    因?yàn)檫@個(gè)項(xiàng)目已經(jīng)運(yùn)行了5年了,Struts1.1的時(shí)候就做的這個(gè)項(xiàng)目,老紫竹的家實(shí)在沒(méi)有辦法在里面配連接池,于是自作聰明在里面做了這種事

    后果很顯然啊
    要么是connection太多,要么是某個(gè)地方把connection關(guān)了導(dǎo)致其他方法拋空指針
    還好,出問(wèn)題的時(shí)候拿過(guò)來(lái)跟了一把馬上意識(shí)到了這個(gè)愚蠢的問(wèn)題
    唉。。。


    14 以前犯過(guò)一個(gè)錯(cuò)誤,在while()中==寫成=了
    因?yàn)殚_(kāi)始的時(shí)候?qū)懙氖钦_的,后來(lái)不知道怎么不小心誤操作刪掉一個(gè)等號(hào),結(jié)果程序死活不對(duì)了。當(dāng)時(shí)是在一個(gè)嵌入式平臺(tái)上,開(kāi)發(fā)環(huán)境很垃圾,所以還老以為是編譯環(huán)境的bug。

    昨天寫程序調(diào)出了n個(gè)bug,一個(gè)是在finally加返回語(yǔ)句了,程序輸出的正好有別的異常,所以沒(méi)往這考慮。搞了半個(gè)下午才發(fā)現(xiàn)問(wèn)題。
    還有指針的問(wèn)題是最讓人頭疼的了。



    15 用中文輸入法輸入全角的分號(hào),結(jié)果編譯不通過(guò),還查不出原因

    老紫竹的家
    16 select * from a where a.idin(.....)


    17 前10分鐘寫JAVA代碼,寫好后再寫javascript代碼
    錯(cuò)誤:
    for(int i = 0 ; i < xxx.length; i++){
    }
    正確:
    for(var i = 0 ; i < xxx.length; i++){
    }
    老紫竹備注:這個(gè)錯(cuò)誤太長(zhǎng)見(jiàn)了,我也經(jīng)常如此


    18 我的第一個(gè)錯(cuò)誤是,UPDATE 是后面沒(méi)有加條件,結(jié)果,所有數(shù)據(jù)全部,UPdate了,呵呵,老板猛劈!!!


    19 有此寫存儲(chǔ)過(guò)程傳進(jìn)來(lái)的參數(shù)USERId, 有張涉及到的表有字段userId
    存儲(chǔ)過(guò)程有一個(gè)條件為 update *** where userId = USERID;
    把數(shù)據(jù)庫(kù)干翻了,后悔得要死。
    不區(qū)分大小寫啊!


    20 把表單里面的input標(biāo)簽的類型寫成了submit,本來(lái)這是正常的,但是我的目的是想在input類型中觸發(fā)某一個(gè)方法,然后在頁(yè)面上顯示相應(yīng)的數(shù)據(jù),并不是想提交整個(gè)表單,結(jié)果我一點(diǎn)input中的按鈕,頁(yè)面始終沒(méi)有反應(yīng),新數(shù)據(jù)就是不能夠顯示,搞了整整兩天才發(fā)現(xiàn)這個(gè)簡(jiǎn)單的問(wèn)題!


    21 for (int i = 0,len = arr.size(); i < len; i++) {
    temp = arr.get(0);
    }
    。。。循環(huán)下來(lái)都取的第一個(gè)元素。。。


    22 改linux內(nèi)核的時(shí)候緩沖區(qū)長(zhǎng)度定義為128字節(jié),后來(lái)改了方案,老紫竹的家需要512字節(jié)的緩沖區(qū),忘了改定義,結(jié)果一賦值緩沖區(qū)溢出,內(nèi)核崩潰,查了幾個(gè)月才查出是什么原因


    23 寫SQL存儲(chǔ)過(guò)程的時(shí)候拼接字符串的長(zhǎng)度給的太小,導(dǎo)致多條件查詢的時(shí)候總是出現(xiàn)bad results。。。


    24 VB的代碼
    FOR I=1 to N
    Next
    忘記給I加一了

    老紫竹的家
    25 操作注冊(cè)表是造成了溢出,把堆破壞了,造成了之后的代碼,只要申請(qǐng)new,malloc就出錯(cuò),查了半天才查出來(lái)。
    主要是寫注冊(cè)表的函數(shù)的參數(shù)是傳出參數(shù),返回指超出了定義的長(zhǎng)度。
    還有就是c下,segment錯(cuò)誤, 數(shù)組越界,很難查,都是運(yùn)行時(shí)出錯(cuò), 訪問(wèn)了不能訪問(wèn)或無(wú)效的地址。


    26 嵌套循環(huán)用同一個(gè)變量

    1. int i=0;  
    2. while(i<10){  
    3.   for(i=0;i<5;i++){  
    4.     ....  
    5.   }  
    6. }  




    27 印象最深刻的就是c#的一個(gè)循環(huán)
    if后面忘加{}

    調(diào)了一個(gè)下午

    28 引用窗體類指針是直接定義頭文件用 沒(méi)有在App中存放 造成指針不一樣,調(diào)不出相應(yīng)成員(VC)


    29

    1. Sring date  = request.getParameter("date");   
    2.     
    3.  if(!"".equals("date")){   
    4.      .....   
    5.  }   
    6.     
    7.  ........   



    最低級(jí)的錯(cuò)誤......
    老紫竹備注:我也犯過(guò)多次,習(xí)慣的就把雙引號(hào)加上去了

    30 循環(huán)變量搞錯(cuò)了
    for( int i=0; i!=5; ++i )
    {
    for( int j=0 j!=5; ++i )
    {


    31 記得初學(xué)Delphi 的時(shí)候,把程序代碼保存在了一個(gè)中文命名的目錄下,按F9 編譯加運(yùn)行,
    始終運(yùn)行失敗,到處找人幫忙看,整個(gè)項(xiàng)目組高手都找遍了,都覺(jué)得奇怪,折騰了好久,都解決不了,各種方法都用盡了,
    就是不能正常運(yùn)行,后來(lái)把程序重新抄了一遍,換了個(gè)文件夾,問(wèn)題解決了。
    從那以后再也不敢把程序放在中文文件夾了,這事過(guò)去五六年了還記得。


    老紫竹的家
    32 打包的時(shí)候不修改數(shù)據(jù)庫(kù)配置文件,然用戶在測(cè)試數(shù)據(jù)庫(kù)上


    33 昨晚寫條件語(yǔ)句時(shí)把If()的括號(hào)輸成了全角的格式。偏偏那個(gè)IF括號(hào)還是嵌套的,盛怒之下卸掉了所有中文輸入法,今天又重新裝上


    34 一次用了ImageButton,結(jié)果又用js進(jìn)行的提交,照成了冗余數(shù)據(jù),后來(lái)才知道ImageButton是會(huì)submit的~

    35 數(shù)據(jù)庫(kù)時(shí)的case語(yǔ)句
    case when then
    后面總是忘了寫end

    36 寫SQL語(yǔ)句用全角的逗號(hào)然后調(diào)試總是報(bào)sql語(yǔ)句錯(cuò)誤動(dòng)員很多同事幫我查錯(cuò),最后發(fā)現(xiàn)被同事鄙視很久


    37 我最近也在維護(hù)公司的一個(gè)網(wǎng)站,發(fā)現(xiàn)原來(lái)寫程序的那個(gè)人也是用了全局的靜態(tài)的連接,導(dǎo)致訪問(wèn)的人多時(shí)老是出現(xiàn)數(shù)據(jù)列不存在的錯(cuò)誤,他竟然在數(shù)據(jù)層中用一個(gè)這樣的變量,搞得上面說(shuō)我寫的程序有問(wèn)題,自從修改后就沒(méi)出現(xiàn)不存在數(shù)據(jù)列的問(wèn)題了.呵呵.
    老紫竹備注: static 這東西,老紫竹的家你一定要知道他到死是干啥的再用,否則你還是去掉比較保險(xiǎn),雖然浪費(fèi)點(diǎn)內(nèi)存。但問(wèn)題出現(xiàn)的越早越好啊。


    38 一個(gè)變量命名中的0寫成O,不知道幾個(gè)兄弟可以不戴眼鏡找出來(lái)


    39 form寫成了from。。。。。。。
    原文地址:http://blog.csdn.net/java2000_net/archive/2009/04/22/4101450.aspx

    posted on 2009-04-23 12:48 Werther 閱讀(332) 評(píng)論(0)  編輯  收藏 所屬分類: 10.Java
    主站蜘蛛池模板: 特级毛片免费播放| 国产精品免费看香蕉| 国产亚洲综合视频| 亚洲日韩乱码久久久久久| 亚洲精品乱码久久久久久 | 中文字幕亚洲综合久久| 亚洲国产黄在线观看| 成人免费视频网址| 一二三四视频在线观看中文版免费| 国产成年无码久久久免费| 一级毛片大全免费播放下载| 亚洲欧美日韩中文二区| 亚洲伊人久久大香线焦| 337p日本欧洲亚洲大胆艺术| 国产亚洲精品精华液| 亚洲午夜国产精品无码老牛影视 | 亚洲暴爽av人人爽日日碰| 亚洲jjzzjjzz在线播放| 亚洲视频在线免费看| 婷婷精品国产亚洲AV麻豆不片| 亚洲伊人久久综合影院| 亚洲av手机在线观看| 国产一级一片免费播放| 日本特黄特色免费大片| 成人永久免费福利视频网站| 成人人免费夜夜视频观看| 女人张开腿等男人桶免费视频 | 国产成人精品日本亚洲11| 亚洲国产成人无码av在线播放| 亚洲激情视频网站| 亚洲欧洲日产韩国在线| 亚洲人成777在线播放| 亚洲国产中文在线视频| 亚洲最大的成人网| 亚洲精品乱码久久久久蜜桃 | 国产1024精品视频专区免费| 国产免费久久精品99re丫y| 国产日本一线在线观看免费| 欧美最猛性xxxxx免费| 日本一道综合久久aⅴ免费| 国产禁女女网站免费看|