1. 程式人生 > >調bug心得及一個非常二的bug

調bug心得及一個非常二的bug

obj pan scrip ole 設置 snippet parent scripts sage

有時候執行結果錯誤,可是vs沒拋異常。這時能夠用trycatch來幫我們捕捉異常。

比如:bug的情況是treeview僅僅顯示一個根節點和一個子節點,還不報錯。我擦~

private void f_script_Load(object sender, EventArgs e)
        {
            List<t_scripts> parents = new t_scriptsBLL().getByParentId(0) as List<t_scripts>;
            try
            {
                foreach (t_scripts p in parents)
                {
                    //TreeNode tn = new TreeNode(p.name);
                    TreeNode tn = new TreeNode();
                    tn.Text = p.name;
                    treeView1.Nodes.Add(tn);
                    addChildrenNodes(tn, (int)p.id);
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
            }
        }

原來是“未將對象引用設置到對象的實例”。

以下我找到那個非常二的bug了

//List<string> sum = new List<string>();//不報錯
            List<string> sum = null;//報錯
            foreach (string s in sum)
            {
                Console.WriteLine("??");
            }

            Console.WriteLine("!");
            Console.ReadKey();

list假設未賦值是count=0的list。而不是null。foreach不能對null遍歷。



ok。睡覺

調bug心得及一個非常二的bug