




免費預覽已結束,剩余2頁可下載查看
下載本文檔
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
我們在做程序開發(fā)時,難免會遇到錯誤異常。如何快速地找到出錯的地方、分析錯誤的原因以及找到解決問題的方案,是許多初級程序員困擾的問題,這也正是經驗的寶貴之處。下面我將簡單介紹在Visual Studio中調試以及一些高級的調試和常見的錯誤。PS:如無特別說明Visual Studio均指Dev10即Visual Studio 2010。入門篇假設你是有著.Net平臺的程序員,并且使用Visual Studio做為開發(fā)工具。斷點:最簡單的一種,設置一個斷點,程序執(zhí)行到那一句就自動中斷進入調試狀態(tài)。設置斷點,在你覺得有問題的代碼行,左側單擊,會出現紅色的紅點即斷點。啟動調式:按F5,或者菜單欄-調式-開始調試,或者工具欄的圖標快速監(jiān)視:快速查看變量或者表達式的值,也可以自定義表達式進行計算單步執(zhí)行有三種,一種是每次執(zhí)行一行(F10);一種是每次執(zhí)行一行,但遇到函數調用就會跳到被調用的函數里(F11);一種是直接執(zhí)行當前函數里剩下的指令,返回上一級函數(Shift+F11)。還有一種后悔藥,設為下一句(Set Next Statement),即下一句會被執(zhí)行的語句(右擊設置或者快捷鍵:Ctrl+Shift+F10),但要注意在調試與數據有關的時候,設置下一句有可能會報異常。如在調試向DataTable中添加行的時候,已經存在的行不能重復被添加到DataTable中監(jiān)視調試器可能會自動列出一些相關變量的值,但是你可能還關心其它變量的值,可以添加對這些變量的監(jiān)視。還可以監(jiān)視一個表達式的值,比如a+b。但是,這個表達式最好不要修改變量的值,比如監(jiān)視a+都會導致監(jiān)視時修改了a的值,影響了程序的運行結果。調試技巧篇使用快捷鍵會大大提升我們的調試效率,常用的調試快捷鍵:F5啟動調試F10執(zhí)行下一行代碼,但不執(zhí)行任何函數調用。F11在執(zhí)行進入函數調用后,逐條語句執(zhí)行代碼。Shift + F11執(zhí)行當前執(zhí)行點所處函數的剩余行。Shift + F5停止運行程序中的當前應用程序??捎糜凇爸袛唷蹦J胶汀斑\行”模式。拖動斷點(感謝圣殿騎士的提醒)在調試中,我們可以拖動斷點,使得程序運行到我們想要運行的地方。通常是用來驗證這段代碼對程序的運行結果有沒有影響的。因為我們拖動代碼,則被過濾的代碼就不會執(zhí)行,將它跟原來的相比,可以看出去掉這段代碼有什么影響條件中斷假如你寫了個for循環(huán),而且循環(huán)的次數比較多,如下代碼,現在我們知道在i=50的時候會有異常,那我們不可能按50次F5去調試這代碼,不然這效率.privatevoidConditionDebug()for(inti=0;i100;i+) if(i=50) /someerrorcodehereConsole.WriteLine(i=50here); 我們可以直接利用vs提供的功能修改變量i的值,一開i=0,即剛進入for循環(huán)中,我們設置將i改為49并回車,再調試一次,會發(fā)現i=50;如下圖當然我們也可以直接在代碼里寫代碼以達到這個目的,代碼如下private void ConditionDebug() for (int i = 0; i ”開頭),會有智能提示,而且命名都是自解釋型。如,我們現在想要知道i的值,可以輸入命名Debug.Print i(也可以簡單的使用? i),如下圖Immediatewindow還有更強大的用法,計算方法的返回值(如果有的話)如果有這個的函數int MethodValue(int a)if (a=1) return 1;else return 0;我們可以使用Immediate命令? class.Method(args)去調用這個方法,如下圖其中p是當前類的實例(因為MethodValue是類的方法,注意?和表達式之間要有空格)對于一些實時性很高的程序(如socket)使用 Debug.Write()把錯誤寫到日志文件中,.Net可以將Debug信息寫到你指定的文件中,記住,寫進出的信息不一定是出錯的信息,也可以是你的程序的運行的一些重要信息,當你調試過程中發(fā)現某個模塊出了問題,但是不能決定位置,那你就可以使用這個方法,如果是一天才出一個錯誤,那你就更要使用這個方法。實例篇涉及到WS(WebServices)的調試在基于WinForm的實際開始開發(fā)中,我們往往采用WS用做數據的傳遞,我們在前臺獲取收集數據,通過WS將數據傳遞給后臺,后臺做相應的業(yè)務邏輯處理后,會持久到數據庫中。而往往我們又會在WS中寫一些相關的代碼,如身份驗證、日志記錄、提示信息等,怎樣去調試這些代碼呢。涉及到JavaScript的調試許多程序員為調試JavaScript感到困惑不已,因為沒有一款很好的調試工具。一些人喜歡使用FireBug來調試JavaScript,確實是一個不錯的選擇,Firebug提供了許多的JavaScript信息,是一款不錯的調試JavaScript的工具。下面我將會介紹如何使用Visual Studio調試JavaScript,Visual Studio中調試JS跟調試C#差不多,都是設置斷點,不同的是我們在查看元素值的時候需要注意點。涉及到Ajax的調試現在ajax已經十分的流行,但是隨之而來的即調試困難,大部分初級程序員不知道如何有效地從前臺調試到后臺代碼,以至出了很多不完善的ajax應用。下面以一個簡單的實例來介紹如何使用Visual Studio調試JavaScript。實例是使用Ajax驗證用戶登錄,如果驗證通過,則提示“登錄成功”,否則提示“登錄失敗”。下面是主要的代碼,我們使用jQuery來實現ajax,并且在后臺文件中故意出錯。正確的用戶名和密碼是admin和1調試方法如下,在后臺入口處設置斷點,然后在前臺js中調用后臺的方法處設置斷點,然后按F5啟動調試,當我們輸入用戶名、密碼后,點擊登錄后會發(fā)現,前臺斷點被觸發(fā)了。按F5繼續(xù)調試,有時候會跳到jQuery的源碼中,不管他,繼續(xù)F5,會發(fā)現執(zhí)行到后臺中的斷點中,如下圖而后臺代碼的調試是十分簡單的。(PS:有時候無需在前臺設置斷點也可直接進入后臺的調試,如何不行的話,在前臺html文件或者aspx文件中認為有可能出錯的地方設置斷點,一步步調試)一些調試中出現的常見錯誤(會陸續(xù)更新):1我們調試到某一句代碼的時候,突然莫名奇妙的跳出來了,其實是剛剛執(zhí)行的這一句話有異常,我們可以使用trycatch進行異常捕獲,看看異常原因是什么,然后做相應的處理2在ADO.NET,我們會使用ds.Merge()
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 集體備課培訓課件
- 茶幾制作培訓課件
- 2025年重慶駕駛教練員從業(yè)資格證考試題庫
- 新娘班培訓課件
- 裝修維修維護合同范本
- 硫酸培訓課件
- 寫梯形面積題目及答案
- 小學線上美術題目及答案
- 中職數學(高教版)基礎模塊上冊數學教案
- 目標管理在高職輔導員思政教育工作中的應用探析
- 2024年急危重癥患者鼻空腸營養(yǎng)管管理專家共識
- 2024年法律職業(yè)資格考試(試卷一)客觀題試卷與參考答案
- 國家開放大學《Web開發(fā)基礎》形考任務實驗1-5參考答案
- 山東師范大學學校管理學期末復習題
- 《進一步規(guī)范管理燃煤自備電廠工作方案》發(fā)改體改〔2021〕1624號
- LS-DYNA:LS-DYNA材料模型詳解.Tex.header
- 大學生體質健康標準與鍛煉方法(吉林聯盟)智慧樹知到期末考試答案章節(jié)答案2024年東北師范大學
- 新疆警察學院面試問題及答案
- 小學三到六年級全冊單詞默寫(素材)-2023-2024學年譯林版(三起)小學英語
- 水利安全生產風險防控“六項機制”右江模式經驗分享
- 幼兒科學探究能力培養(yǎng)策略研究
評論
0/150
提交評論