北大青鳥學(xué)費(fèi)一覽表浙江seo推廣
目錄
前言:
BUG是什么!
事情的經(jīng)過:
過程:
錯(cuò)誤一:
錯(cuò)誤二:
總結(jié):
前言:
BUG是什么!
在計(jì)算機(jī)科學(xué)中,BUG是指程序中的錯(cuò)誤或缺陷,它通過是值代碼中的錯(cuò)誤、邏輯錯(cuò)誤、語法錯(cuò)誤、運(yùn)行時(shí)錯(cuò)誤等相關(guān)問題,這些問題可能會導(dǎo)致程序崩潰、產(chǎn)生不正確的結(jié)果或行為,或者導(dǎo)致程序無法正常工作。
在軟件開發(fā)中,bug是一種常見的問題,正所謂無bug不成方圓,哈哈,程序時(shí)??赡軙稿e(cuò)誤,而且程序的復(fù)雜性也回增加出現(xiàn)錯(cuò)誤的可能性。為了盡可能得減少bug的數(shù)量,開發(fā)人員通常會使用各種技術(shù)和工具來進(jìn)行代碼測試和調(diào)試,以確保程序的正確性和穩(wěn)定性。同時(shí),用戶也可以用過反饋bug來幫助開發(fā)人員改進(jìn)程序,提高質(zhì)量和可能性。
出現(xiàn)bug也是程序員非常抵觸的事情,可能出現(xiàn)一個(gè)bug需要花好長時(shí)間來解決,甚至好幾天來解決,如果在即將上市的產(chǎn)品上,出現(xiàn)bug這將會給公司帶來一筆巨大的損失,因此程序會在上市之前進(jìn)行反復(fù)測試。
事情的經(jīng)過:
在進(jìn)行機(jī)房重構(gòu)的時(shí)候,出現(xiàn)了很多的bug,導(dǎo)致程序無法運(yùn)行,卡在程序的主入口,都說斷點(diǎn)調(diào)試是程序員的一大利器,為什么這么說,因?yàn)樗梢詭统绦騿T快速的定位問題,減少調(diào)試的時(shí)間并提高準(zhǔn)確性,此外,斷點(diǎn)調(diào)試還可以幫助程序員深入理解程序的執(zhí)行過程和內(nèi)部實(shí)現(xiàn),從而提高程序員的技術(shù)水平和代碼質(zhì)量。但是通過斷點(diǎn)調(diào)試,開始也是沒有找到解決的辦法,錯(cuò)誤就在眼前,但是找不到它。著實(shí)著急。
過程:
錯(cuò)誤一:
1.添加用戶啟動失敗窗體
在進(jìn)行添加用戶的時(shí)候,突然報(bào)出圖片中的錯(cuò)誤,根據(jù)錯(cuò)誤提示,可以清晰的看出應(yīng)該是數(shù)據(jù)庫的代碼出現(xiàn)問題!通過斷點(diǎn)調(diào)試進(jìn)一步的將問題往下深挖,證明是連接數(shù)據(jù)庫的語句出現(xiàn)了問題,期間不斷嘗試將數(shù)據(jù)庫中的語句進(jìn)行替換,但是廢了九牛二虎之力也沒找到,撓破了頭皮也是想不到問題出自在哪,開始質(zhì)疑報(bào)錯(cuò)的錯(cuò)誤是不是有問題,最終在心里的斗爭下,我將所有與數(shù)據(jù)庫打交道的代碼都重寫了一遍,不寫不知道,一寫就出現(xiàn)問題,系統(tǒng)最終能正常運(yùn)行,通過撤回將錯(cuò)誤代碼浮現(xiàn)出來,通過仔細(xì)對比發(fā)現(xiàn)問題的根源真是讓人難找。大家可以看下代碼,我將錯(cuò)誤的代碼注釋在下面了,不仔細(xì)查看還是看不出來,括號是中文的括號,這才導(dǎo)致附近語法有錯(cuò)誤,通過這件事也是告訴我們書寫的總要性,往往不注意的細(xì)節(jié),都會讓自己陷入兩難的境地。
1.2數(shù)據(jù)庫中的部分代碼
Dim sql As String "INSERT INTO User_info(UserNo,Password)VALUES(@UserNo,@Password)"'Dim sql1 As String "INSERT INTO User_info(UserNo,Password)VALUES (@UserNo,@Password)Dim cmd As New SqlCommand(sql,conn)cmd.Parameters.Add(New SqlParameter("@UserNo",updateuser.UserNo))cmd.Parameters.Add(New SqlParameter("@Password",updateuser.Password))reader cmd.ExecuteReader()
1.3添加用戶啟動成功窗體
錯(cuò)誤二:
1.充值啟動失敗窗體
這個(gè)錯(cuò)誤,跟上面的錯(cuò)誤提示完全不一樣,對于這個(gè)錯(cuò)誤開始沒有進(jìn)行仔細(xì)考慮,不管三七二十一,直接上手對數(shù)據(jù)庫的代碼進(jìn)行整改,運(yùn)行之后改,改完之后運(yùn)行,經(jīng)過幾輪的反復(fù),問題依然沒有解決,開始心煩氣躁......,因?yàn)樽约哼@個(gè)是分為UI層,BLL層,DAL層,自己也是局限在此,事實(shí)證明不去理解問題,這樣只會是事半功倍,報(bào)出錯(cuò)誤信息,一定有解決的辦法,這三層經(jīng)過仔細(xì)的篩選找到問題的本質(zhì)了。代碼如下,下面代碼是正確的,一開始我將調(diào)用的方法寫在最上面,這樣會照成什么問題,沒有賦值就開始調(diào)用, 所以提示錯(cuò)誤提示需要參數(shù)‘@CardNo',但未提供參數(shù),將調(diào)用的方法放在賦值的下面,這樣就可以成功啟動。
1.2數(shù)據(jù)傳輸?shù)倪^程
1.3UI層的部分代碼
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.ClickTryDim UserFull As New Entity.UserRechargeDim aFull As New BLL.UserBLLUserFull.CardNo = TxtUserNo.TextUserFull.Recharge = TxtMoney.TextUserFull.RechargeDataTime = TxtTime.TextaFull.UserFullBAL(UserFull)Catch ex As ExceptionMessageBox.Show(ex.Message.ToString)End TryEnd Sub
End Class
1.4充值啟動成功窗體
總結(jié):
書寫問題:
1.統(tǒng)一用英文書寫2.禁止切換中英文去編寫代碼
3.嚴(yán)格要求編碼的規(guī)范,控制代碼質(zhì)量
代碼問題:
1.仔細(xì)閱讀提示的錯(cuò)誤信息2.使用調(diào)試工具
3.編寫完成對每段帶代碼逐一檢查
4.尋求幫助(互聯(lián)網(wǎng)、高人解決)
?