【VS实践】代码调试与错误处理
程序員的裝逼技能:調試,錯誤處理和快捷鍵
學計算機3年,只知道一些基礎的理論知識,寫代碼和調試很差,基本不會什么吧! 花時間了解一下關于這塊的東西!以前覺得調試就是代碼寫出來一運行,有問題了分析那里出問題了,改完能運行就好了;調錯的時候真的是很難受,今天我才發現,原來是我自己一直用錯方法了!【感悟:重新認識調試】
調試:
調試在不同的階段都有用
【開發】:通過調試檢查代碼中的錯誤,并處理掉,保證程序正常運行
【測試】:通過調試的手段測試代碼,保證程序從不同的方向驗證都能正常通過。
【發布】:通過調試,可以重新創建,檢測程序錯誤
程序在調試時,不僅會運行寫好的代碼,還會加載程序中的符號信息,這些符號信息在調試的過程中反饋給開發者,使其了解代碼發生了什么。
調試分類:【正常模式的調試】【中斷模式下的調試】
**【正常模式的調試】:**也就是程序的正常運行,主要通過輸出結果的方式來調試;
兩中輸出方式:診斷輸出和跟蹤點
診斷輸出:1.console.writeLine( )輸出到控制臺
2.Debug.WriteLine( )或Trace.WriteLine()輸出到OutPut窗口
3.寫入日志文件
跟蹤點:設置跟蹤點,通過message輸出到Output窗口
output窗口位置
在Debug模式下可以運行
Debug.WriteLine() Trace.WriteLine()
類似
Debug.Write() Trace.Write()
Debug.WriteLineIf() Trace.WriteLineIf()
Debug.WriteIf() Trace.WriteIf()
在Release模式下可以運行,只能運行Trace相關代碼,不能執行Debug函數
在調試版本中顯示所有額外診斷信息,而發布版沒有這個功能,這樣能夠保證發布程序編譯后文件較小,所以不包含!
【中斷模式下的調試】:進入中斷模式:1.添加斷點進入,通過斷點進入可以通過多種方式
2.產生為處理異常進入
3.生成判定語句進入
判定函數 Debug.asset() Trace.assert()
觸發判定語句,用戶會收到通知,把這些消息傳遞給開發人員
進入中斷后:1.跟蹤錯誤
2.通過技巧分析代碼
常用技巧也就是【監視變量內容】【單步執行代碼】【執行命令的窗口】
【監視變量內容】:常通過這幾個窗口
自動窗口:當前使用變量和前面語句
局部窗口:作用域內變量,在這個里面可以編輯變量的值,有效的繞過前面其他變量的賦值
監視窗口:可定制變量和表達式,監視特定變量或涉及特定變量的表達式,很容易看出那個變量的值發生變化
【單步執行代碼】:首先進入中斷,執行到中斷處
Step Into:,執行每個操作,包括函數中執行
Step Over:移動到下一句,但不進入代碼塊中,但仍執行代碼塊
Step Out:跳到代碼塊尾,執行完該語句后,重新進入中斷
使用單步中斷執行代碼,執行到有錯的地方,錯誤還是會像正常運行那樣發生。這個過程中,可以通過監視數據,看看
什么地方出錯。
【執行命令的窗口】:即時窗口和命令窗口可以在運行的過程中執行命令
命令窗口:可以通過命令手動操作,適用復雜操作
即時窗口:執行源代碼,計算簡單表達式,修改變量內容
大多數情況多用監視窗口,能夠得到同樣的效果
例如:
在命令窗口輸入immediate切換到即時窗口,即時窗口輸入cmd切換到命令串口
【Call Stack】:調用堆棧
10個調試和查錯的方法
編程中調試程序的方法
代碼測試之代碼調試
vs的幾種調試方法
VS下如何調試程序
錯誤處理:
有可能會有錯誤發生,但不能100%肯定它們不會發生,所以最好能預料錯誤的發生,編寫足夠強壯以處理這些錯誤,而不用中斷程序!通過異常處理
第一種
try
{........
}
finally【必須】
{........
}
第二種
try
{........產生異常代碼
}
catch
{........產生異常時需要執行的代碼
}
finally【可選】
{........包含總是會執行的代碼;如果沒有異常,則在try后執行;有異常,就在catch后執行
}
第三種
try
{........
}
catch
{........
}
catch
{........
}
finally【可選】
{........
}
執行順序:
1.try塊在異常處中斷程序執行
2.【有catch塊,查看是否匹配異常類型? 如果匹配就執行,再執行finally塊;不匹配檢查其他catch塊】
3.【沒有catch塊,執行finally塊】
通用的快捷鍵:
backspace:刪除光標左邊的內容
delete:刪除光標右邊的內容
delete:刪除到回收站里【選中】
shift+delete:徹底刪除【選中】
覆蓋光標后的內容:insert
home:光標移到這行開始
end:光標移到這行末尾
Shift+Home :從當前光標所在處,一直選中至當前行首
Shift+End: 從當前光標,一直選中至當前行的行尾
選中到行末:光標在home按shift+end
選中到行始:光標在end:shift+home
pageup向前翻頁
pagedown向后翻頁
光標在頭選中一頁:shift+pagedown
光標在尾選中一頁:shift+pageup
C#專屬快捷鍵
Ctrl+K+D: 對齊(代碼語法錯誤,就不能使用)
Ctrl+K+C加注釋【選中】
Ctrl+k+U去注釋【選中】
Ctrl+J:快速智能提示
F1:查看MSDN
F12:轉到定義
F5:調試(編制的程序投入實際運行前,用手工或編譯程序等方法進行測試,修正語法錯誤和邏輯錯誤的過程)
ctrl+shift+B :生成解決方案
總結
以上是生活随笔為你收集整理的【VS实践】代码调试与错误处理的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【Design pattern】设计模式
- 下一篇: 【C#实践】三层:初识