.net中出現死循環或者無限遞歸
瀏覽量:2804
CRM定制請找易勢科技
記得在剛學c語言的時候,寫算法的時候,經常會遇到死循環情況,當死循環時候,結果是那dos界面,數字刷溜溜的往上滾,滾動條刷溜溜的越來越小,最后只有強制關閉程序,才能終結。
現在在.net中很少遇到死循環的情況了,因為很少寫算法了
.net的開發一般都在VS中進行,因為vs集成環境強大的編譯功能,強類型,自動垃圾回收,所以一般的錯誤都會在程序運行前發現,當然那些邏輯錯誤除外
項目用的是模板引擎,遇到了一個問題,在VS中運行會出現這個提示
“WebDev.WebServer.exe 遇到問題需要關閉”
在IIS中運行會出現
“Faulting application w3wp.exe, version 6.0.3790.3959, stamp 45d6968e, faulting module kernel32.dll, version 5.2.3790.3959, stamp 45d742c2, debug? 0, fault address 0x0000bee7”
經過調試,發現出現了
“未處理的“System.StackOverflowException”類型的異常出現在System.dll 中。提示有無限循環或者無限遞歸”
報錯的地方不是后臺程序,而且其它頁面也正常
于是我從html頁面排除,發現我的模板里面有自調用自己的情況,就是無限遞歸調用自己。
刪除一切OK。
所以警惕無限遞歸,死循環,警惕邏輯錯誤。