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

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

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

    隨筆-199  評論-203  文章-11  trackbacks-0

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


    下面是明細,呵呵呵。

    1 老紫竹(java2000_net)
    我最難忘的一次,是自作聰明的在一個for循環后面加上了一個分號,而且是在大量的代碼重構之后,運行時偶爾發生這個錯誤。
    大概用了我近1周的時間。

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

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

     

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



    編輯器格式化代碼時,可以有很大的幫助。
    說說大家曾經常犯的低級錯誤吧,也好讓其它朋友有個心理準備,想拿塊豆腐砸自己腦袋的沖動少幾次。


    2 jsp頁面莫名的報空指針,而且有時出有時不出。最后發現是jsp代碼里混了個全角的空格,排版比較亂的時候看不出來。然后那空格被當變量名的一部分了,偏偏那變量還不常用。悲劇啊( ̄(工) ̄)

    3 當年用vc,貌似寫個類似于jTable的東西,在我的機器上一切都好,在老板(小公司,cto也是老板之一)的機器上一跑就死。。。。。。。。然后發現,我的機器分辨率是640×480,老板的是800×600的,結果數組溢出。。。。。。。


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

    5 三層架構里面的業務邏輯層比如:

    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. }  


    還好碰到了一次,以后報stackoverflow...異常就知道什么錯了,呵呵、

    6 struct CXTEST_DAT
    {
    ...
    WORD wLen;
    ...
    }
    int TestData(..., DWORD dwLen);
    使用時:
    CXTEST_DAT stData;
    TestData(..., stData.wLen);
    自動擴展為DWORD后,長度總是不對

    7 我也經常犯低級錯誤,但我覺得并不可笑,每次發現自己犯低級錯誤后,自己的印象也更加深刻,重復犯錯的機率就小了很多。

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

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



    當在方法中switch傳入的枚舉參數值時:

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



    語法老報錯,卻不知道怎么回事,明明Java中的switch分支是支持枚舉的?。?
    后來擺渡了一下才知道原來switch分支中case枚舉時是不需要加枚舉類型前綴的


    8 oracle ,寫sql 語句時候 怎么老是提示錯誤 ,語句老長 ,調試了一天 ,眼睛看花了 ,結果一看 ,掉了個冒號?。?
    老紫竹的家


    9 又一次 裝了個防火墻 運行myeclipse的時候 報錯,說端口有問題 ,我還以為是被占用 或者tomcat的問題 弄了半天 百度 Google 都無果,猛然發現是被防火墻攔截了


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


    11 用C言語時
    if(i=1)
    {
    }本來我是想判斷真假
    結果......


    12 在修改配置文件的時候,就因為一個空格,而找了半天的錯誤

    老紫竹的家
    13 在維護公司一個比較老的項目的時候,自作聰明地寫了這么一個類(主要是為了共用數據庫連接)
    public class DataQuery{
    //靜態的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();
    }
    }

    //其他查詢方法,共用一個connection......
    }

    因為這個項目已經運行了5年了,Struts1.1的時候就做的這個項目,老紫竹的家實在沒有辦法在里面配連接池,于是自作聰明在里面做了這種事

    后果很顯然啊
    要么是connection太多,要么是某個地方把connection關了導致其他方法拋空指針
    還好,出問題的時候拿過來跟了一把馬上意識到了這個愚蠢的問題
    唉。。。


    14 以前犯過一個錯誤,在while()中==寫成=了
    因為開始的時候寫的是正確的,后來不知道怎么不小心誤操作刪掉一個等號,結果程序死活不對了。當時是在一個嵌入式平臺上,開發環境很垃圾,所以還老以為是編譯環境的bug。

    昨天寫程序調出了n個bug,一個是在finally加返回語句了,程序輸出的正好有別的異常,所以沒往這考慮。搞了半個下午才發現問題。
    還有指針的問題是最讓人頭疼的了。



    15 用中文輸入法輸入全角的分號,結果編譯不通過,還查不出原因

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


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


    18 我的第一個錯誤是,UPDATE 是后面沒有加條件,結果,所有數據全部,UPdate了,呵呵,老板猛劈!?。?


    19 有此寫存儲過程傳進來的參數USERId, 有張涉及到的表有字段userId
    存儲過程有一個條件為 update *** where userId = USERID;
    把數據庫干翻了,后悔得要死。
    不區分大小寫啊!


    20 把表單里面的input標簽的類型寫成了submit,本來這是正常的,但是我的目的是想在input類型中觸發某一個方法,然后在頁面上顯示相應的數據,并不是想提交整個表單,結果我一點input中的按鈕,頁面始終沒有反應,新數據就是不能夠顯示,搞了整整兩天才發現這個簡單的問題!


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


    22 改linux內核的時候緩沖區長度定義為128字節,后來改了方案,老紫竹的家需要512字節的緩沖區,忘了改定義,結果一賦值緩沖區溢出,內核崩潰,查了幾個月才查出是什么原因


    23 寫SQL存儲過程的時候拼接字符串的長度給的太小,導致多條件查詢的時候總是出現bad results。。。


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

    老紫竹的家
    25 操作注冊表是造成了溢出,把堆破壞了,造成了之后的代碼,只要申請new,malloc就出錯,查了半天才查出來。
    主要是寫注冊表的函數的參數是傳出參數,返回指超出了定義的長度。
    還有就是c下,segment錯誤, 數組越界,很難查,都是運行時出錯, 訪問了不能訪問或無效的地址。


    26 嵌套循環用同一個變量

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




    27 印象最深刻的就是c#的一個循環
    if后面忘加{}

    調了一個下午

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


    29

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



    最低級的錯誤......
    老紫竹備注:我也犯過多次,習慣的就把雙引號加上去了

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


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


    老紫竹的家
    32 打包的時候不修改數據庫配置文件,然用戶在測試數據庫上


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


    34 一次用了ImageButton,結果又用js進行的提交,照成了冗余數據,后來才知道ImageButton是會submit的~

    35 數據庫時的case語句
    case when then
    后面總是忘了寫end

    36 寫SQL語句用全角的逗號然后調試總是報sql語句錯誤動員很多同事幫我查錯,最后發現被同事鄙視很久


    37 我最近也在維護公司的一個網站,發現原來寫程序的那個人也是用了全局的靜態的連接,導致訪問的人多時老是出現數據列不存在的錯誤,他竟然在數據層中用一個這樣的變量,搞得上面說我寫的程序有問題,自從修改后就沒出現不存在數據列的問題了.呵呵.
    老紫竹備注: static 這東西,老紫竹的家你一定要知道他到死是干啥的再用,否則你還是去掉比較保險,雖然浪費點內存。但問題出現的越早越好啊。


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


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

    posted on 2009-04-23 12:48 Werther 閱讀(332) 評論(0)  編輯  收藏 所屬分類: 10.Java
    主站蜘蛛池模板: 中文字幕无码免费久久99| 亚洲人成免费电影| 午夜免费不卡毛片完整版| 免费一区二区无码东京热| 深夜a级毛片免费视频| 亚洲Av高清一区二区三区| 亚洲国产精品福利片在线观看| 日本无卡码免费一区二区三区| 久久WWW免费人成一看片| 在线观看免费无码视频| 色吊丝性永久免费看码| 亚洲AV永久无码精品一福利| 亚洲人成在久久综合网站| 久久综合亚洲色一区二区三区| 亚洲人成网77777亚洲色| 亚洲成a人片在线观看老师| 午夜网站免费版在线观看| 在线看片韩国免费人成视频| 一区二区三区四区免费视频| kk4kk免费视频毛片| 深夜久久AAAAA级毛片免费看| 亚洲精华国产精华精华液网站| 久久精品国产亚洲AV久| 亚洲国产美女视频| 18gay台湾男同亚洲男同| 亚洲精品自产拍在线观看动漫| 亚洲av永久无码精品表情包| 亚洲精品无码久久久影院相关影片 | 久别的草原电视剧免费观看| 中文字幕在线免费播放| 国产国产人免费人成成免视频| 免费看一级毛片在线观看精品视频| 麻豆亚洲AV成人无码久久精品| 亚洲精品无码久久久久牙蜜区| 在线亚洲高清揄拍自拍一品区| 亚洲精品综合在线影院| 亚洲中文字幕无码亚洲成A人片| 中文无码亚洲精品字幕| 亚洲国产成人手机在线观看| 日韩亚洲人成在线综合| selaoban在线视频免费精品|